首先想到的是实现一个WebViewClient,监听里面的onreceivererror()做相应的异常处理,后面发现每次出现error之后又会有onPageStarted,onPageFinish()两次,不会在我想要处理的onreceivererror()显示我想要的异常页面:
原因可能如下(本人自己的猜测),由于webview底层的解析和webviewclient是分处在两个不同的线程,而当webview底层解析遇到问题会去显示android自身的错误界面,会走一次onPageFinish(),webviewclient会走一次OnPageStart(),,onPageFinish(),所以这个时候加载的默认界面还是webview自身的。
解决办法如下:
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
mIsLoadResource = false;
mWapLoadingView.setVisibility(View.VISIBLE);
mTitleView.startRefreshRotate();
mWapLoadFailed.setVisibility(View.GONE);
}
@Override
public void onPageFinished(WebView view, String url) {