2015-09-17 10 views
6

Io uso webview per caricare pagine html e url.Controlla se url è nella cache webview android

Desidero caricare l'URL solo se Internet è disponibile o se il contenuto dell'URL è memorizzato nella cache dalla visualizzazione Web.

Come è possibile verificare se un URL è memorizzato nella cache senza dover creare la mia cache su un percorso esterno.

WebSettings ws = wv.getSettings();                    
    ws.setJavaScriptEnabled(true);                     
    ws.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);               
    wv.setOnTouchListener(this);                     
    wv.setWebViewClient(new WebViewClient() {                  
     @Override                         
     public boolean shouldOverrideUrlLoading(WebView view, String url) {           
      if (!url.contains("http")) {                   
       view.loadUrl(url);                     
      } else {                        
       if (Utils.isConnectingToInternet(thisActivity)) {             
        view.loadUrl(url);                    

       }                         
      }                          
      view.loadUrl(url);                      
      return false;                       
     } 

ho fatto riferimento a:

WebView Cache Data Directory?

Check if file already exists in webview cache android

How to move webView cache to SD?

Android webview check if page is in cache

risposta

0

Imposta la modalità cache webview LOAD_CACHE_ELSE_NETWORK.

metodi Override WebViewClient:

@SuppressWarnings("deprecation") 
     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      if (view.getUrl().equals(failingUrl)){ 
       showInternetConnectionError(); 
      } 
      super.onReceivedError(view, errorCode, description, failingUrl); 
     } 

     @TargetApi(android.os.Build.VERSION_CODES.M) 
     @Override 
     public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 
      onReceivedError(view, error.getErrorCode(), error.getDescription().toString(), request.getUrl().toString()); 
     } 

caricherà pagina web dal server se la connessione internet, altrimenti caricare dalla cache. Se la pagina web non è disponibile nella cache, verrà visualizzato l'errore di connessione Internet.

Problemi correlati