onReceivedHttpError :支持 Android 版本 < 23

ABH*_*BHI 5 android

我正在研究一个正在加载网址的解决方案。我需要获取 Http 错误,以便我可以重新加载 url 来创建新会话。

@Override
   public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
            super.onReceivedHttpError(view, request, errorResponse);
            Toast.makeText(getActivity(), "Unexpected error occurred.Reload page again.", Toast.LENGTH_SHORT).show();
            if(errorResponse.getStatusCode() == 401){
                customWebView.loadUrl(url);
            }
        }
Run Code Online (Sandbox Code Playgroud)

但上述代码的问题在于它是从 Marshmallow 运行的。任何人都可以建议我一种解决方案,让我在 Android 版本 < 23 以下时出现错误吗?

Int*_*iya 2

onReceivedHttpError

void onReceivedHttpError (WebView view, 
                WebResourceRequest request, 
                WebResourceResponse errorResponse)
Run Code Online (Sandbox Code Playgroud)

通知主机应用程序加载资源时从服务器收到 HTTP 错误。

任何人都可以建议我一个解决方案,在 Android 版本 < 23 以下时出现错误

onReceivedHttpError添加到API level 23. 所以低于23就不起作用了。

尝试用

.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
        }

        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {

        /*if(Build.VERSION.SDK_INT<23)
         {
            // You work
         }*/
        }

        @Override
        public void onReceivedHttpError(
                WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {

        /*if(Build.VERSION.SDK_INT >= 23)
            {
                 // Your Work
            }*/
        }

        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler,
                                       SslError error) {
        }
    });
Run Code Online (Sandbox Code Playgroud)

供参考

onReceivedError

此方法在 API 级别 23 中已弃用。请改用 onReceivedError(WebView, WebResourceRequest, WebResourceError)。