下载Web内容并在运行时加载Android webview

时间:2015-06-30 09:49:25

标签: android webview internal-storage

我想在网页浏览中加载本地网络内容。我正在下载一个zip文件,解压缩并保存内部存储(/data/data/<app>/files/)上的文件(main.html和资源文件--css,js,fonts,pngs等)。

所有文件都在同一目录中:

| - main.html
| - file.js
| - ...

因此,html文件指向资源文件如下:
<script type="text/javascript" src="file.js"></script>

我虽然这会起作用

String path = context.getFilesDir() + File.separator + "main.html";
webview.loadUrl("file://" + path)

但是webview在棒棒糖前设备中显示file not found错误,在棒棒糖设备中显示:

“无法加载file:///data/data/<app>/files/main.html的网页,因为:net :: ERR_ACCESS_DENIED”

如果我通过运行

将html加载为字符串
String file = htmlFile.fileToString();
webview.loadDataWithBaseURL("", file, "text/html", "utf-8", "");

它可以工作,但我必须通过提供所有资源文件的完整路径来解决依赖关系。必须有更好的方法来解决这个问题。

有没有人知道如何在Android中运行时存储的webview上加载本地文件?

谢谢

1 个答案:

答案 0 :(得分:6)

我忘记了webview的配置方法。

webview.getSettings().setAllowFileAccess(false)

这就是问题所在。转到true,webview就可以加载本地文件。