2015-07-11 64 views
0

請問我想在android中緩存我的Web視圖url數據。我想在用戶的互聯網不可用時在頁面上顯示緩存數據,並在他/她的數據可用時顯示網站數據。我還想在沒有緩存數據時向用戶顯示一條消息。緩存網絡在android中查看網址數據

我的下面的代碼可以緩存數據並在用戶的互聯網不可用時顯示給用戶。但我無法檢測是否有緩存。

 if(isNetworkAvailable()){ 
     view.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 
     view.getSettings().setJavaScriptEnabled(false); 
     view.loadUrl(url); 

    } 
    else{ 

     // show cache data if cache data exist 
     if(view.getSettings().getCacheMode() == WebSettings.LOAD_CACHE_ONLY){ 
      view.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY); 
      view.loadUrl(url); 
     } 
     else{ 
      String summary = 
          "<html><body>" 
          + "<center>Please connect to the internet or check " 
          + "your connection settings.</center>" 
          + "</body></html>"; 
        view.loadData(summary, "text/html", null); 

     } 
    } 

感謝您的幫助。

+0

我建議你加載到本地數據庫中的所有數據和比後取它是互聯網連接不可用 –

回答

0

如果你看看較舊的Android CacheManager源代碼,你會看到@Deprecated註釋與Javadoc註釋:

訪問HTTP緩存會在將來的版本中刪除。

getCacheFile()@Deprecated註釋與Javadoc註釋的方法:

這種方法不再有任何影響,總是返回null。

因此,我確信您訪問WebView緩存信息時運氣不佳。

下面是一些可能的變通:

  1. 編寫自定義WebViewClient和覆蓋onReceivedError()。當頁面加載失敗時,您可以選中在應用程序中顯示錯誤消息。
  2. 如果網站只包含靜態文件:創建它,用你的設備將其同步歸檔並加載它僅在本地