我正在尝试让网站的 HTML5 离线缓存版本在网络在 web 视图内关闭时显示。
我已经覆盖onReceivedError
了 ok,当网络关闭时,这个方法被调用。问题是它显示通用的“网页不可用”消息。
如何让它显示页面的 HTML5 缓存版本?webapp 的离线存储肯定可以正常工作,因为它在 Firefox 和 Chrome 的桌面版本中运行良好。
我知道我可以loadData
手动调用视图onReceivedError
,但我不确定我可以从哪里获取 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);