首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WebView onReceivedError仅在开始时检测不到连接

WebView onReceivedError是一个Android WebView类的回调方法,用于在加载网页过程中检测到错误时进行处理。它在加载网页时会被调用,用于通知应用程序发生了错误。

在WebView加载网页时,可能会遇到各种错误,例如网络连接问题、网页不存在、服务器错误等。onReceivedError方法可以帮助开发者捕捉这些错误,并根据需要进行相应的处理,例如显示错误页面、重新加载网页或者进行其他操作。

该方法的使用方式如下:

代码语言:txt
复制
webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        // 处理错误
    }
});

参数说明:

  • view:发生错误的WebView实例。
  • errorCode:错误码,表示具体的错误类型。
  • description:错误描述信息。
  • failingUrl:发生错误的网页URL。

在处理错误时,可以根据errorCode的值来判断错误类型,常见的错误类型包括:

  • ERROR_UNKNOWN:未知错误。
  • ERROR_HOST_LOOKUP:无法解析主机地址。
  • ERROR_CONNECT:无法连接到服务器。
  • ERROR_TIMEOUT:连接超时。
  • ERROR_REDIRECT_LOOP:重定向循环。
  • ERROR_UNSUPPORTED_AUTH_SCHEME:不支持的身份验证方案。
  • ERROR_AUTHENTICATION:身份验证失败。
  • ERROR_PROXY_AUTHENTICATION:代理身份验证失败。
  • ERROR_UNSUPPORTED_SCHEME:不支持的网页协议。
  • ERROR_IO:输入/输出错误。
  • ERROR_FAILED_SSL_HANDSHAKE:SSL握手失败。
  • ERROR_FILE:文件错误。
  • ERROR_FILE_NOT_FOUND:文件未找到。
  • ERROR_TOO_MANY_REQUESTS:请求过多。

根据具体的错误类型,可以采取不同的处理方式。例如,对于网络连接错误,可以显示一个错误页面或者提示用户检查网络连接;对于网页不存在的错误,可以显示一个404页面或者返回上一页。

在腾讯云的产品中,可以使用腾讯云移动浏览器(Tencent X5)来替代系统默认的WebView,以提供更好的浏览体验和错误处理能力。腾讯云移动浏览器是一款基于Blink内核的浏览器引擎,具有更快的网页加载速度和更好的兼容性。您可以通过以下链接了解更多关于腾讯云移动浏览器的信息:

Tencent X5移动浏览器

总结:WebView onReceivedError是一个用于处理WebView加载网页过程中错误的回调方法。通过捕捉错误码和错误描述,开发者可以根据具体的错误类型进行相应的处理,例如显示错误页面、重新加载网页或者进行其他操作。在腾讯云的产品中,可以使用腾讯云移动浏览器来提供更好的浏览体验和错误处理能力。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WebView加载出错的处理方案「建议收藏」

2.在WebView的setWebViewClient中加入重写方法 //错误的处理方式需要分开两种,原因:在Android6以上的机器上,网页中的任意一个资源获取不到(比如字体),网页就很可能显示自定义的错误界面...// 旧版本,会在新版本中也可能被调用,所以加上一个判断,防止重复显示 @Override public void onReceivedError(WebView view, int errorCode..., String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl...emptyView.setVisibility(View.VISIBLE); } // 新版本,只会在Android6及以上调用 @TargetApi(Build.VERSION_CODES.M) @Override public void onReceivedError...(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view,

1.5K10

基于腾讯x5开源库,提高60%开发效率

4.0.4 无法获取webView的正确高度 偶发情况,获取不到webView的内容高度 其中htmlString是一个HTML格式的字符串。...webResourceError) { super.onReceivedError(webView, webResourceRequest, webResourceError); } /**...当WebView加载出错时,会在WebViewClient实例中的onReceivedError(),还有onReceivedTitle方法接收到错误/** * 请求网络出现error * @param...这些错误通常表明无法连接到服务器。 // 值得注意的是,不同的是过时的版本的回调,新的版本将被称为任何资源(iframe,图像等) // 不仅为主页。因此,建议在回调过程中执行最低要求的工作。...=null){ //表示等待证书响应 handler.proceed(); // handler.cancel(); //表示挂起连接,为默认方式

3.4K30

WebView完全解读

(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError...正确的使用方式是: Show Profilea> 对应的检测Url跳转的方式: / The URL scheme should be...url,然后随便点击一个链接跳到第二个页面,退出APP 2.关闭wifi以及移动网络,然后重新进入,发现无网络的情况下,页面还是加载了, 打开第一个链接也可以加载,打开其他链接就发现找不到网页!...等错误的状态码,如果直接弹出WebView默认的错误 提示页面,可能显得不那么友好,我们可以重写WebViewClient的onReceivedError()方法来实现我们 想要的效果,一般的做法有两种...,一种是:我们自己在assets目录下创建一个用于显示错误信息的 HTML页面,当发生错误,即onReceivedError()被调用的时候我们调用webView的loadUrl跳到我们 的错误页面,比如

3K10

Android自定义webView头部进度加载效果

实现思路 就是自己画一条进度线(大家应该都会吧)然后加载到WebView的上面,开始进度条是隐藏的,进度线初始值为1,然后为了效果好一点,初始少于10的进度都让它加载到10的位置,等进度到100的时候0.2...ViewGroup.LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); //刚开始时候进度条不可见...progressBar.setVisibility(GONE); //把进度条添加到webView里面 addView(progressBar); //初始化handle handler = new...view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public void onReceivedError...(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode

1.3K10

WebView设置WebViewClient的方法

或者需要加载的新内容. (4)这个方法会在Http的Body已经加载,已经反映在DOM上,并且将会在其可见的时候绘制.这个回调发生在文档(document)加载的早期,因此它的资源(css,和图像)可能是拿不到的...注意: (1)谷歌的Chromium(引擎)可能会缓存这些响应,所以当前情况下,忽略可能是影响最小的一个选择. (2)如果在UI线程使用,这个连接可能被暂停. (3)在大多数情况,这个应用程序项目,应该实现...onReceivedError ( WebView view, int errorCode, String descrption, String failingUrl ) 向应用程序报告错误,这个错误都是不可恢复的...error) 向应用程序报告Web资源加载错误.这些错误通常会显示无法连接到服务器,回调时注意与弃用版本,新版本将针对任何资源(iframe,picture),不仅针对主页面,因此,建议在这个回调上执行加载资源错误的...==注意:服务器响应的内容可能在errorResponse中找不到.== onReceivedLoginRequest(Webview view, String realm String account

1.5K41

那些年在WebView上踩过的坑

之前我在Android中使用WebView与JS交互全解析一文中,介绍了通过Webview和JS的交互方式,但Webview这个控件简直是让人又爱又恨,各种你想不到的错误在各种奇怪的手机上,各种不一样的版本里...这里还要说一点,当加载出错的时候,比如无网络,这时onReceiveTitle中获取的标题为 找不到该网页,因此建议当触发onReceiveError时,不要使用获取到的title. 8.怎么隐藏缩放控件...自定义错误显示界面 覆写WebViewClient中的onReceivedError()方法: /** * 显示自定义错误提示页面,用一个View覆盖在WebView */ protected...}); mErrorView.setOnClickListener(null); } } @Override public void onReceivedError...span>mErrorView.setVisibility(View.VISIBLE); super.onReceivedError

1.9K31

Android 中使用WebViewJavaScriptBridge进行H5和原生的交互

使用第三方框架WebViewJavascriptBridge 这也是我今天要分享的部分 2.为什么要使用WebViewJavascriptBridge 对于安卓开发有一段时间的人来说,知道安卓4.4以前谷歌的webview...,甚至轻而易举的调用本地代码进行流氓行为,谷歌后来发现有此漏洞后,增加了防御措施,如果要是js调用本地代码,开发者必须在代码中申明JavascriptInterface, 列如在4.0之前我们要使得webView...Log.e(TAG, "来自web的回传数据:" + data); } }); //H5端代码 //注册回调函数,第一次连接时调用...) { super(webView); } @Override public void onReceivedError(WebView view, WebResourceRequest...request, WebResourceError error) { super.onReceivedError(view, request, error);//这个不能省略

2.4K20

Android webView打开网页

注意:使用WebView不当容易引起内存泄漏,所以WebView的生命周期方法应跟随Activity的生命周期的方法来调用。...onReceivedError():页面加载发生错误时调用,这时候可以跳转到自定义的错误提醒页面,总比系统默认的错误页面美观,优化用户体验。...true; -> 消费事件终止传递 } @Override public void onReceivedError(WebView view, int errorCode, String...拦截url - onReceivedError 访问错误时回调,例如访问网页时报错404,在这个方法回调的时候可以加载错误页面。...onPageStarted页面开始加载显示进度条,shouldOverrideUrlLoading拦截url,如果请求url是打开google,不让他请求,因为google在国内不能访问,就算请求也请求不到还不如拦截掉

1.8K20

首个hybird商业项目踩坑总结

(webView, s); } //加载页面的服务器出现错误时(如404)调用 @Override public void onReceivedError...(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError...; //表示等待证书响应 // sslErrorHandler.cancel(); //表示挂起连接,为默认方式 // sslErrorHandler.handleMessage...()、onJsConfirm()、onJsPrompt()方法回调 这种方法跟上面的没有本质差异,也是在回调函数中进行Java代码操作,目前我在项目中用到的地方较少,主要用来做一些比较特殊的功能,例如检测到...在适当时机直接杀掉Webview独立进程,什么内存泄露,内存占用巨大的问题都见鬼去吧。要问什么时机?比如退出app时,检测到没有Webview页面时。

1.2K10

Android 设备使用 chrome 远程调试

使用 USB 电缆将 Android 设备直接连接到您的开发计算机。 首次连接时,通常会看到 DevTools 检测到未知设备。...如果您 Android 设备的型号名称下显示绿色圆点和 Connected 文本,则表示 DevTools 已与您的设备成功建立连接 远程调试 WebView 使用 Chrome 开发者工具在您的原生...应用中启用 WebView 调试 必须从您的应用中启用 WebView 调试。请在 WebView 类上调用静态方法 setWebContentsDebuggingEnabled。...提示:WebView 调试不会受应用清单中 debuggable 标志的状态的影响。如果您希望仅在 debuggable 为 true 时启用 WebView 调试,请在运行时测试标志。...与 WebView 一起列示的灰色图形表示 WebView 的大小和相对于设备屏幕的位置。如果您的 WebView 已设置标题,标题也会一起显示。

88510
领券