android 处理webview加载页面失败事件,包括http异常
人民网>>社会·法治

android 处理webview加载页面失败事件,包括http异常

2025-06-24 11:58:33 | 来源:人民网
小字号

在网上找到的方法如下,这种方法可以访问服务器,但发生40x错误是无效的。

webView.setWebViewClient(new WebViewClient() {     @Override    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {         super.onReceivedError(view, request, error);        // 页面加载失败        // 加载失败的逻辑࿰可以在这里处理c;例如,显示错误信息    }});

正确的方法应该是这样的a;处理onreceivedHttperor中的服务器正常,但是http请求失败的问题,例如,404页不存在等待;在onreceivederor中处理服务器异常,例如,无法到达的情况。

多种处理方法�例如,尝试其他服务节点,加载本地静态html等。

views.startWebview.setWebViewClient(new WebViewClient() {     @Override    public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {         super.onReceivedHttpError(view, request, errorResponse);        Log.e(TAG, "onReceivedHttpError " + request.getUrl().toString() + ",error:" + errorResponse.toString());        pageError(view);    }    @Override    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {         super.onReceivedError(view, request, error);        Log.e(TAG, "onReceivedError" + request.getUrl().toString() + ",error:" + error.toString());        pageError(view);    }    @Override    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { //                super.onReceivedSslError(view, handler, error);        Log.e(TAG, "onReceivedSslError " + view.getUrl() + ",error:" + error.toString());        pageError(view);    }    private void pageError(WebView view) {         view.loadUrl("file:android_asset/xxx.html"); //加载一个本地html文件    }});

(责编:人民网)

分享让更多人看到