HarmonyOS Web组件如何添加重定向监听

Web组件如何添加重定向的监听,类似于其他平台的WebViewClient中的shouldOverrideUrlLoading 方法

HarmonyOS的Web组件onLoadIntercept 加载url之前就触发该回调了

HarmonyOS
2024-12-27 15:56:58
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

onUrlLoadIntercept 这个返回是否加载;onInterceptRequest 返回响应数据;

onLoadIntercept这个返回是否加载就是对标shouldOverrideUrlLoading函数,如果需要拦截请设置返回true表示阻止此次加载。 参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-redirection-and-browsing-history-mgmt-V5#%E9%A1%B5%E9%9D%A2%E8%B7%B3%E8%BD%AC

可以拦截重定向的URL可以参考下这个链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5内的onUrlLoadIntercept与onInterceptRequest方法

可以看下这个demo是否有所帮助

// xxx.ets
import web_webview from ‘@ohos.web.webview’;

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  @State loadUrl:string|null=null
  build() {
    Column() {

      Web({ src: ‘https://b.huawei.com.cn/user’, controller: this.controller })
        .onLoadIntercept((event) => {

        if(this.loadUrl==null)//判断首次加载
        {
        console.log(“loginfo:首次加载”)
        this.loadUrl=event.data.getRequestUrl()
      }

      if(this.loadUrl!=event.data.getRequestUrl()&&this.loadUrl!=null)//非首次加载判断
      {
        console.log(“loginfo:两次url不一样—上次加载url:”+(this.loadUrl==null?‘null’:this.loadUrl)+"----本次加载URL:"+event.data.getRequestUrl())//打印加载url 可以删掉

        this.loadUrl=event.data.getRequestUrl()//将此次加载路径保存入变量中,为下次对比做参照

        if(event.data.isRedirect())//判断服务器重定向
        {
          console.log(“loginfo:服务器重定向”)
        }else{
          if(event.data.isRequestGesture())//判断是否发生了交互,未交互就跳转认定为代码重定向,发生了交互认定为正常页面跳转
          {
            console.log(“loginfo:页面跳转”)//,用户交互发生的页面跳转属于正常页面跳转,不属于重定向
          }else{
            console.log(“loginfo:客户端页面代码重定向”)//若未发生交互,直接进行页面跳转则认定发生了重定向
          }
        }
      }else{
        console.log(“两次url相同,未生重定向”)//两次url相同,为发生重定向
      }
      return false
    })
  }
}
}
分享
微博
QQ
微信
回复
2024-12-27 18:08:51
相关问题
Web调用url怎么重定向
265浏览 • 1回复 待解决
Web如何判断是否发生重定向
1048浏览 • 1回复 待解决
HarmonyOS hilog重定向文件
85浏览 • 1回复 待解决
HarmonyOS requestInStream重定向问题
116浏览 • 1回复 待解决
HarmonyOS ArkWeb网页重定向问题
116浏览 • 1回复 待解决
HarmonyOS http请求重定向的处理
132浏览 • 1回复 待解决
HarmonyOS使用Web组件如何监听滚动位置
760浏览 • 2回复 待解决
HarmonyOS Web组件怎么添加下拉刷新
241浏览 • 1回复 待解决