HarmonyOS 鸿蒙Next:web浏览器的onLoadIntercept接口和onOverrideUrlLoading接口具体区别是什么?都适用于哪些场景使用
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。