检查网址是否已缓存WebView Android [英] Check if url is cached webview android

查看:368
本文介绍了检查网址是否已缓存WebView Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用webview加载html页面和url。

I use webview to load html pages and urls.

我只想在有Internet可用或URL内容由Web视图缓存的情况下加载url。

I want to load url only if internet is available or if the url content is cached by the web view.


如何检查URL是否被缓存,而不必在某些外部路径上创建自己的
缓存。

How can I check if a url is cached without having to create my own cache on some external path.



   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;                                                                                          
       } 

我指的是:

WebView缓存数据目录?

检查文件是否已存在于webview缓存android

如何将webView缓存移至SD?

Android webview检查页面是否在缓存中

推荐答案

尝试覆盖 webviewclient 中的 onPageCommitVisible 。当网址未缓存且网络不可用时,将调用此回调。

Try overriding onPageCommitVisible inside your webviewclient. When the url is not cached and network is not available, this callback will be called.

@Override
public void onPageCommitVisible(WebView view, String url) {
                super.onPageCommitVisible(view, url);
                if(!isNetworkAvailable){
                    //page not cached
                }
                Timber.d("Page cannot draw")
}

检查互联网可用性

boolean isNetworkAvailable(){
      ConnectivityManager cm =
        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

      NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
      boolean isConnected = activeNetwork != null &&
                      activeNetwork.isConnectedOrConnecting();
      return isConnected;

}

这篇关于检查网址是否已缓存WebView Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆