首页 > 解决方案 > WebView:状态码 404,即使页面在浏览器中加载正常

问题描述

我的应用程序中有一个 WebView,我在其中覆盖了以下方法,每当出现错误 404 时,我都会加载不同的 url-

public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
            super.onReceivedHttpError(view, request, errorResponse);
            //load another url
        }

我面临的问题是第一个 url 返回 404,然后在这个块中加载第二个 url。

但是即使页面存在并且在浏览器上运行良好,这个块也会被一次又一次地调用。

我从这个答案中找到了一些提示,但不明白如何处理它。有没有办法知道当整个网页未找到或网页中的某些元素未找到时收到状态码 404。

标签: androidandroid-webview

解决方案


就像这个答案中提到的 - Android WebView : onreceivedHttpError statusCode == 404。将为任何资源(iframe、图像等)调用 onReceivedHttpError 回调,而不仅仅是主页。因此,建议在此回调中执行所需的最少工作。我只是删除了这个回调,我的应用程序现在运行良好。


推荐阅读