onReceivedHttpError:支持android版本< 23

时间:2018-02-09 07:06:02

标签: android

我正在开发一个我正在加载网址的解决方案。我需要获取Http Error,以便我可以重新加载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);
            }
        }

但上面代码的问题在于它可以在Marshmallow中运行。可以任何人建议我一个解决方案,我可以得到错误低于Android版本< 23?

1 个答案:

答案 0 :(得分:1)

onReceivedHttpError

void onReceivedHttpError (WebView view, 
                WebResourceRequest request, 
                WebResourceResponse errorResponse)

通知主机应用程序在加载资源时已从服务器收到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) {
        }
    });

<强> FYI

onReceivedError

  

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