检查网址是否已缓存WebView Android [英] Check if url is cached webview android
本文介绍了检查网址是否已缓存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;
}
我指的是:
推荐答案
尝试覆盖 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屋!
查看全文