从FileSystemStorage代号一个web浏览器加载HTML(Codename One We

2019-10-23 08:34发布

我正在开发代号中的一个应用程序用于查看报告的离线哪来的HTML格式包含在一个单独的文件夹资源。 应用程序会下载HTML和复制资源的文件夹结构,因为它们是在HTML参考。 当我打开报告用普通的浏览器,并指向“/.cn1”文件夹正确加载和显示。 当使用模拟器,HTML装入代号一个Web浏览器对象而被显示(可以看我的报告的标题),它只是Web浏览器没有加载任何资源。 我还设置了基本URL的文件夹。

    WebBrowser wbBrowser = (WebBrowser) findByName("WebBrowser",  f);
    FileSystemStorage fs = FileSystemStorage.getInstance();
    wbBrowser.setPage(getTextFromFile(fs.getAppHomePath() + "/Reports/Report_2.html"), fs.getAppHomePath() + "/Reports/Report_2_files_files");

这是我目前使用的代码。 它运行显示报表查看表后。 我已经打开在运行Android Lollipop的默认浏览器和Mozilla Firefox Android应用的报告,并将其与所有图像正确显示网页,其中包括CSS,所以我不知道这是否是一个代号一个安全问题。 任何想法将不胜感激。

编辑:我曾尝试简化应用程序,我只是运行下面的代码;

        WebBrowser wbBrowser = (WebBrowser) findByName("WebBrowser", Display.getInstance().getCurrent());
        FileSystemStorage fs = FileSystemStorage.getInstance();
        fs.mkdir(fs.getAppHomePath() + "[Folder Name]");
        Util.downloadUrlToFile("http://[IpAddress]/mobile/admin/Report_2.html", fs.getAppHomePath() + "[Folder Name]/Report_2.html", true);
        if (FileSystemStorage.getInstance().exists(fs.getAppHomePath() + "[Folder Name]/Report_2.html") == true) {
            wbBrowser.setURL(fs.getAppHomePath() + "[Folder Name]/Report_2.html");
            Dialog.show("Success", "File has been downloaded and shown as " + wbBrowser.getTitle(), "Ok", "");
        } 
        else {
            Dialog.show("Failiure", "File has not been downloaded", "Ok", "");
        }

当运行Android Lollipop的设备上运行时,会显示成功对话框,尽管我在设备上运行搜索时没有找到他们(我不知道在哪里代号为一个存储文件的存储位置)。 没有其他的代码在设备上的任何地方运行,但我有当存储HTML文档自己的设备上,并使用硬编码引用(即成功/Storage/emulated/0/Android/data/Report_2.html )。 wbBrowser.getTitle()为null /“”当在设备上运行。 虽然当这行代码是别的地方它成为约:页。 Report_2.html的HTML是;

<!DOCTYPE html>
<html>
<head>
    <title>Test Page</title>
</head>
<body>
    <h1>Hello World</h1>
</body>
</html>

Answer 1:

几天后,我意识到, setURL()要求的格式的路径file://pathname ,我用/pathname ,其中没有对工作setURL()但是,确实setPage()当我阅读HTML从文件。 这是一个用户错误。



Answer 2:

这应该在设备上工作,但可能会在模拟器上不正确的指向。

它应该在模拟器内点的路径是file://home/appName/这应该只是罚款。 我建议URL设置为一个文件,而不是设置这样可以让你轻松地添加图片,CSS文件等不提,它可能会更快的HTML。



文章来源: Codename One WebBrowser loading HTML from FileSystemStorage