(3)创建一个自己的WebViewClient,通过setWebViewClient关联
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
/**
-
1.网页页面开始加载的时候,执行的回调方法,可以实现加载等待界面
-
2.在此方法中设置一个超时计时器
-
@param view
-
@param url
-
@param favicon
*/
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
mLinearLayout.setVisibility(View.GONE);
mRelativeLayout.setVisibility(View.VISIBLE);
}
/**
-
1.网页加载结束的时候,也要隐藏等待界面
-
2.onPageFinished指页面加载完成,完成后取消计时器
-
@param view
-
@param url
*/
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mLinearLayout.setVisibility(View.VISIBLE);
mRelativeLayout.setVisibility(View.GONE);
}
/**
-
加载异常的界面
-
@param view
-
@param request
-
@param error
*/
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
Log.d(“testTimeout”, “-----------加载异常”);
}
});
(4)访问的页面中有Javascript,则webview必须设置支持Javascript
We
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内