Android只加载缓存无法正常工作。WebView显示为离线状态。

4
我正在尝试使用webview展示一些网页,而无需连接互联网。我想把这些网页保存在缓存中,如果没有互联网连接,就从缓存中再次加载它们。但是它没有起作用。网站没有出现,相反我得到了该网站目前不可用的信息。我已经检查了AppCachePath是否正确,使用getCacheDir()方法。你有任何想法吗?我做错了什么,或者它怎么工作。非常感谢。
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAppCacheMaxSize(1024*1024*8);
webView.getSettings().setAppCachePath("/data/data/de.app/cache");
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);

webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onReachedMaxAppCacheSize(long spaceNeeded, long totalUsedQuota,
                                         WebStorage.QuotaUpdater quotaUpdater)
    {
        quotaUpdater.updateQuota(spaceNeeded * 2);
    }
});

ConnectivityManager cm =
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected() == true)
{
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webView.loadUrl("http://www.google.de");
}
else{
    webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY);
    webView.loadUrl("http://www.google.de");
}

你找到这个问题的解决方案了吗? - Dhrupal
1个回答

3
你可以尝试使用webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK)来进行操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接