网上对于WebView的缓存技术用的很多,但是都是使用了缓存技术,却是没有使用缓存数据,这点很无奈。
废话不说了,看WebView的缓存设置:
<span style="font-family:Comic Sans MS;font-size:24px;"> private void initWebView() {
// 设置支持Javascript脚本语言
settings.setJavaScriptEnabled(true);
// 设置缓存模式WebSettings.LOAD_CACHE_ELSE_NETWORK
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
if (URLUtil.isNetworkUrl(url)) {
webView.loadUrl(url);
} else {
webView.loadUrl(utils.getUrl());
}
}
</span>
此处设置WebSettings.LOAD_CACHE_ELSE_NETWORK表示在非WIFI的情况下
然后设置强制网络访问
<span style="font-family:Comic Sans MS;font-size:24px;"> @Override
public void onRefresh(PullToRefreshBase<WebView> refreshView) {
if (NetworkUtils.getNetworkState(this) != NetworkUtils.NETWORK_NONE) {
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
} else {
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
webView.loadUrl(url);
}
</span>
这两段代码配合使用,WebView使用缓存数据还是使用网络请求当真是信手捏来。