java - `onPageFinished` 是在 `onReceivedError` 之后调用的吗?

标签 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

最佳答案

onPageFinished 告诉您 WebView 已停止加载。 onReceivedError 告诉您出现错误。它们不是“成功”和“失败”回调,这就是为什么您会在出现错误时同时获得两者的原因。

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

关于java - `onPageFinished` 是在 `onReceivedError` 之后调用的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808868/

相关文章:

java - jarsigner 中的 *.SF 文件有什么意义?

安卓:日历 View OnDateChangeLIstener

objective-c - 带有 WebView 的自定义窗口不响应关闭操作

javascript - React Native——如何注册高级程序(exports.examples)以进行加载?

java - Oracle Java 树教程 : Where and how to implement the tutorial code

java - BigDecimal 值货币

java - 内存不足时 Kubernetes 是否应该重新启动我的 JVM 应用程序?

android - 编辑 android VideoView 帧

java - 让静态引用变量无效会被java垃圾收集吗?

Android从具有多个页面的webview创建pdf文档