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文件 }});
(责编:人民网)
分享让更多人看到