Web中如何判断是否发生重定向

在web组件里没有关于判断是否发生重定向的方法,当重定向后url发生了改变之后无法察觉。

HarmonyOS
2024-05-26 18:01:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
trobust

使用的相关API

onLoadIntercept

核心代码解释

import web_webview from '@ohos.web.webview' 
@Entry 
@Component 
struct WebComponent { 
  controller: web_webview.WebviewController = new web_webview.WebviewController() 
  mode:boolean=false 
  build() { 
    Column() { 
      Web({ src: $rawfile('t1.html'), controller: this.controller }) 
        .onLoadIntercept((event) => { 
          if(event.data.isRedirect()){ 
            //判断服务端重定向 
            this.mode=false 
            //this.mode=true 
            //用于判断是否阻止加载 
          } 
          if (event.data.getRequestUrl().match('rawfile')){ 
            //根据资源文件所在的文件夹或者其它url含有的目录信息判断 
            this.mode=false 
            //this.mode=true 
            //用于判断是否阻止加载 
          } 
          if (event.data.getRequestUrl().match('tel:')){ 
            //判断特殊的协议,比如是tel等mailto等 
            this.mode=false 
            //this.mode=true 
            //用于判断是否阻止加载 
          } 
          console.log('ssss: '+event.data.getRequestUrl()) 
          return this.mode 
        }) 
 
    } 
  } 
}

使用web组件加载本地html,在html里进行跳转操作模拟发生了重定向,html代码如下:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
<div id="root"> 
    这是第一个页面 
    <a href="../i2.html">点击这里跳转到目标HTML文件</a> 
</div> 
</body> 
</html>
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
<div id="root"> 
    这是第二个页面 
</div> 
</body> 
</html>

实现效果

跳转后可以拦截到url,用来判断发生重定向。

分享
微博
QQ
微信
回复
2024-05-27 22:52:15
相关问题
如何判断Web组件是否全屏
847浏览 • 1回复 待解决
Web组件如何判断网址是否加载成功
964浏览 • 1回复 待解决
如何判断JS对象是否存在某个值
841浏览 • 1回复 待解决
如何判断HAP是否安装
810浏览 • 1回复 待解决
如何判断一个对象是否在对象数组
897浏览 • 1回复 待解决
如何判断是否为主线程?
386浏览 • 1回复 待解决
鸿蒙应用如何判断是否使用debug签名?
2024浏览 • 1回复 待解决
如何判断软键盘是否弹出
848浏览 • 1回复 待解决
如何判断har是否被混淆了?
384浏览 • 1回复 待解决
如何判断当前线程是否是主线程
1016浏览 • 1回复 待解决
Web如何创建定位授权弹窗
843浏览 • 1回复 待解决
如何捕获应用发生的异常?
268浏览 • 1回复 待解决
Web组件的预加载,如何实现?
480浏览 • 1回复 待解决