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 来判断是否是主资源报错。

onHttpErrorReceiveonHttpErrorReceive 是在响应码>=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回调。具体实现如下:

  1. 在布局文件中定义WebView组件:

    <WebView
        ohos:id="$+id:webview"
        ohos:width="match_parent"
        ohos:height="match_parent"/>
    
  2. 在代码中设置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回调会在页面加载失败时触发,开发者可以在该方法中处理加载失败的情况。

回到顶部