【发布时间】:2017-03-31 06:14:53
【问题描述】:
我有一个使用 webview 的 Android 应用。有一个 java 后端服务器提供所有前端文件并通过 apache tomcat 构建缓存清单。
我的问题是,当服务器未连接时,我不确定如何从应用缓存中加载 webview,但设备已连接到互联网。
如果我进入应用程序代码,我可以强制它使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY);
所以我知道我的文件被适当地缓存了。我还尝试了其他堆栈溢出问题的解决方案,这些问题让我检查网络状态并根据网络状态设置缓存模式,如下所示:
cm = (ConnectivityManager) this.getSystemService(Activity.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo().isConnected()) ....
但是,这在设备在线但我的服务器已关闭的情况下不起作用。它仍然说在这种情况下网络很好,并且不会从缓存中加载。
理想的解决方案是,当前端 webview 尝试通过网络访问资源并且它不可用时,它只是从缓存中加载,这正是它在普通浏览器中的工作方式。但我可以接受变通方法,比如让应用检测到我的特定服务器的网络连接并相应地更改缓存模式。
有人知道解决这个问题的最佳方法吗?谢谢。
【问题讨论】:
标签: javascript java android webview html5-appcache