2011-11-06 50 views
4

我试图通过webview显示一些网页而不连接到互联网。如果没有连接到互联网,我认为我可以将网页保存在缓存中并再次从缓存中加载它们。但它不起作用。该网站没有出现,相反我得到,该网站现在不可用。我已经检查过AppCachePathgetCacheDir()是否正确。你有什么想法,我做错了什么,或者它是如何工作的。将会是完美的。非常感谢。仅限Android负载缓存不起作用。离线显示WebView

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

您是否找到解决此问题的解决方案? – Dhrupal

回答

3

你可以用webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK)尝试;