HarmonyOS 鸿蒙Next:web浏览器的onLoadIntercept接口和onOverrideUrlLoading接口具体区别是什么?都适用于哪些场景使用

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:web浏览器的onLoadIntercept接口和onOverrideUrlLoading接口具体区别是什么?都适用于哪些场景使用

文档里面说的也有点模糊,web浏览器的onLoadIntercept接口和onOverrideUrlLoading接口,他们区别是什么?都时候那些场景使用?

2 回复
Web({ src: $rawfile("index.html"), controller: this.controller })
        .onOverrideUrlLoading((webResourceRequest: WebResourceRequest) => {
          if (webResourceRequest && webResourceRequest.getRequestUrl() == "about:blank") {
            return true;
          }
          return false;
        })
        .onLoadIntercept((event) => {
          console.log('url:' + event.data.getRequestUrl());
          console.log('isMainFrame:' + event.data.isMainFrame());
          console.log('isRedirect:' + event.data.isRedirect());
          console.log('isRequestGesture:' + event.data.isRequestGesture());
          return false;
        })
1、onLoadIntercept是web组件加载url时触发的回调,拦截本次webview加载,增加业务处理;
2、onOverrideUrlLoading 是webview初始化之后,后面加载加载url到当前web 或者 H5加载url时,触发该回调,具体可参考API中的demo和说明;https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#onoverrideurlloading12

HarmonyOS 鸿蒙Next中,web浏览器的onLoadIntercept接口和onOverrideUrlLoading接口具有以下区别及适用场景:

区别

  • 触发时机:onLoadIntercept在Web组件加载URL之前触发,用于判断是否阻止此次访问;onOverrideUrlLoading在URL将要加载到当前Web中时触发,让宿主应用程序有机会获得控制权。
  • 行为:onLoadIntercept默认允许加载,通过返回值判断是否拦截;onOverrideUrlLoading通过返回true或false来决定是否中止或继续加载URL。

适用场景

  • onLoadIntercept:适用于需要在加载URL前进行拦截判断的场景,如检查URL的合法性、安全性等。
  • onOverrideUrlLoading:适用于需要在URL加载过程中进行控制的场景,如自定义URL的加载行为、处理特定URL的跳转等。

总之,这两个接口在Web组件的URL加载过程中扮演着重要角色。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部