我有这个密码:

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中执行“return”还是调用onPageFinished

最佳答案

onPageFinished告诉您webview已停止加载。onReceivedError告诉你有个错误。它们不是“成功”和“失败”回调,这就是为什么在出现错误时会同时得到这两个回调。
而且,callback implementations in WebViewClient通常不会做任何有用的事情,所以您是否调用super.onReceivedError也没有区别。在onReceivedError中无法“执行返回”。如果您想在出现错误时显示其他内容,请从view.loadUrl(...)调用onReceivedError

07-24 09:37