2011-11-06 62 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)嘗試;