最近做项目用到了webView来加载网页,但是奇葩的是,webView在加载网页的时候没有进度条,不知道是自己没有找到还是压根webView就没有,如果有还请留言告诉我,不胜感激。好了废话不多说,直接贴代码。
/**
* 设置webView参数,访问网页
* @param wapUrl 要访问的手机端url地址
*/
public void showWeb(String wapUrl){
//WebView加载web资源
itemWebView.loadUrl(wapUrl);
//启用支持javascript
WebSettings settings = itemWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
itemWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
//这里在webView刚开始加载页面的时候调用进度条
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
loadingDialog.show("加载中...");
}
//在页面加载完成后关闭掉进度条
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mainHandler.sendEmptyMessage(LoadingDialog.MSG_CLOSE);
}
});
}
需要说明的是进度条控件是我们事先已经定义好的,拿来直接用就可以了。其实就这么简单,之前还真天真的把进度条开始和结束的代码放到了showWeb()这个函数的前后。看来有时间真应该好好研究下源码