我有这段代码:
private final class MyWebClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
url = "localhost:999";
mIsLoaded = false;
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
mIsLoaded = true;
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
mIsLoaded = false;
super.onReceivedError(view, errorCode, description, failingUrl);
}
}
被覆盖事件的关系和顺序是什么
如果成功了吗?
如果失败?
MyWebClient应设置对话框内容
但如果我的错误代码不是0,我希望它隐藏对话框。
我应该只在onReceivedError
中进行“返回”,还是会调用onPageFinished
?
答案 0 :(得分:1)
onPageFinished
告诉您WebView已停止加载。 onReceivedError
告诉您有错误。他们不是"成功"和"失败"回调就是为什么你会在出现错误的情况下得到这两个。
另外,callback implementations in WebViewClient通常不会做任何有用的事情,所以不管你是否正在调用super.onReceivedError
都没有任何区别。没有办法"做回报"在onReceivedError
。如果您想在出现错误时显示其他内容,请从view.loadUrl(...)
致电onReceivedError
。