请参考如下demo: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: 'xxx', 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 }) } } }
请参考如下demo: