我试图通过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");
}
答案 0 :(得分:3)
您可以尝试使用webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);