【发布时间】:2012-01-18 01:46:38
【问题描述】:
我正在尝试让网站的 HTML5 离线缓存版本在 web 视图内的网络出现故障时显示。
我已经覆盖了onReceivedError ok,当网络中断时这个方法被调用。
问题是它显示通用的“网页不可用”消息。
如何让它显示页面的 HTML5 缓存版本? webapp 的离线存储绝对可以正常工作,因为它在桌面版本的 Firefox 和 Chrome 中运行良好。
我知道我可以在onReceivedError 中手动将loadData 调用到视图中,但我不确定我可以从哪里获取HTML5 缓存值。
注意:如果我在loadData 中设置了一些虚拟数据,例如view.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");,然后单击返回(通过检测返回事件并调用webview.goBack();,则页面的缓存版本显示正常。
这里是我添加的一些代码行来设置 webview:
webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webview.getSettings().setAppCacheMaxSize(1024*1024*8);
webview.getSettings().setAppCachePath("/data/data/com.stuff.android/cache");
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setAppCacheEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
【问题讨论】:
标签: android html webview offline-caching offline-mode