下载网页内容并在运行时加载 Android webview
Download web content and load on Android webview at runtime
我想在网络视图上加载本地 网络内容。我正在下载一个 zip 文件,将其解压缩并将文件(main.html 和资源文件 - css、js、字体、png 等)保存在内部存储设备 (/data/data/<app>/files/
) 上。
所有文件都在同一目录中:
|- 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 在 pre lollipop 设备中显示 file not found
错误,在 lollipop 设备中显示:
"The webpage at file:///data/data/<app>/files/main.html
could not be loaded because: net::ERR_ACCESS_DENIED"
如果我通过 运行
将 html 作为字符串加载
String file = htmlFile.fileToString();
webview.loadDataWithBaseURL("", file, "text/html", "utf-8", "");
它可以工作,但我必须通过提供所有资源文件的完整路径来解决依赖关系。必须有更好的方法来处理这个问题。
有谁知道如何在运行时存储在 Android 中的 webview 上加载本地文件?
谢谢
忘记webview的配置方法了
webview.getSettings().setAllowFileAccess(false)
这就是问题所在。通过转向 true
webview 能够加载本地文件。
我想在网络视图上加载本地 网络内容。我正在下载一个 zip 文件,将其解压缩并将文件(main.html 和资源文件 - css、js、字体、png 等)保存在内部存储设备 (/data/data/<app>/files/
) 上。
所有文件都在同一目录中:
|- 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 在 pre lollipop 设备中显示 file not found
错误,在 lollipop 设备中显示:
"The webpage at file:///data/data/<app>/files/main.html
could not be loaded because: net::ERR_ACCESS_DENIED"
如果我通过 运行
将 html 作为字符串加载String file = htmlFile.fileToString();
webview.loadDataWithBaseURL("", file, "text/html", "utf-8", "");
它可以工作,但我必须通过提供所有资源文件的完整路径来解决依赖关系。必须有更好的方法来处理这个问题。
有谁知道如何在运行时存储在 Android 中的 webview 上加载本地文件?
谢谢
忘记webview的配置方法了
webview.getSettings().setAllowFileAccess(false)
这就是问题所在。通过转向 true
webview 能够加载本地文件。