HarmonyOS 鸿蒙Next web加载一个不存在的网页地址如何能监听到页面加载失败
HarmonyOS 鸿蒙Next web加载一个不存在的网页地址如何能监听到页面加载失败
【设备信息】Mate 60
【API版本】Api14
【DevEco Studio版本】5.0.7.200
【问题描述】web加载一个不存在的网页地址如何能监听到页面加载失败呢?
2 回复
可以通过监听onErrorReceive
,然后通过 isMainFrame 来判断是否为主文档,仅对主文档的错误进行拦截展示自定义错误页,防止资源报错(js css)直接跳转错误页。 可以参考文档:web组件如何自定义加载中和加载失败的页面
onErrorReceive
:网页加载遇到错误时触发该回调。主资源与子资源出错都会回调该接口,可以通过 request.isMainFrame
来判断是否是主资源报错。
onHttpErrorReceive
:onHttpErrorReceive
是在响应码>=400时候触发回调
- 以上是初步分析结论,如有疑问可以展开回复,看到后会继续协助定位阻碍点。
- 开源网站上收录了UI、系统接口、Web、创新特性等场景化鸿蒙示例DEMO,开发中可以参考:https://gitee.com/scenario-samples/demo-index
更多关于HarmonyOS 鸿蒙Next web加载一个不存在的网页地址如何能监听到页面加载失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,要监听Web页面加载失败事件,可以使用WebView
组件的onError
回调。具体实现如下:
-
在布局文件中定义
WebView
组件:<WebView ohos:id="$+id:webview" ohos:width="match_parent" ohos:height="match_parent"/>
-
在代码中设置
onError
回调:WebView webView = (WebView) findComponentById(ResourceTable.Id_webview); webView.setWebAgent(new WebAgent() { @Override public void onError(WebView webView, int errorCode, String description, String failingUrl) { // 处理页面加载失败逻辑 // errorCode: 错误码 // description: 错误描述 // failingUrl: 加载失败的URL } }); webView.load(failingUrl);
onError
回调会在页面加载失败时触发,开发者可以在该方法中处理加载失败的情况。