无论如何,`onReceivedError`之后调用`onPageFinished`?

时间:2014-05-22 13:52:50

标签: java android webview android-webview

我有这段代码:

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

1 个答案:

答案 0 :(得分:1)

onPageFinished告诉您WebView已停止加载。 onReceivedError告诉您有错误。他们不是"成功"和"失败"回调就是为什么你会在出现错误的情况下得到这两个。

另外,callback implementations in WebViewClient通常不会做任何有用的事情,所以不管你是否正在调用super.onReceivedError都没有任何区别。没有办法"做回报"在onReceivedError。如果您想在出现错误时显示其他内容,请从view.loadUrl(...)致电onReceivedError