HarmonyOS web组件某些h5里的超链接点击后使用onLoadIntercept方法监听不到

web组件某些h5链接使用onLoadIntercept监听不到:因为需要对部分特殊地址进行拦截,跳转原生,但是用一个h5页面,onLoadIntercept不行,这块有其他监听方法吗?可能会是什么原因呢?

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

onLoadIntercept就是对标shouldOverrideUrlLoading函数,具体场景用法参考Demo如下:

import web_webview from '@ohos.web.webview'
@Entry
@Component
struct H5Page {
  @State message: string = 'Hello World';
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  build() {
    Column() {
      Row() {
        Web({
          src: $rawfile('First.html'), controller: this.controller
        })
          .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())
            if (event.data.getRequestUrl() == 'resource://rawfile/Second.html') {
              return true
            }
            return false
          })
      }
      .height('100%')
    }
    .width('100%')
  }
}

First.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>第一页</h1>
<button onclick="myFunction()">点击</button>
</body>
<script type="text/javascript">
    function myFunction() {
        window.location.href = "Second.html";
    }
</script>
</html>
Second.html
<!DOCTYPE html>
<html>
<head><title>您好</title></head>
<body><h1>欢迎来到详情页!</h1>
<p>您已成功从首页跳转到此页,并在URL中添加了参数。页面将自动返回首页。</p></body>
</html>
分享
微博
QQ
微信
回复
2024-12-27 17:32:27
相关问题
HarmonyOS web组件加载h5h5拉起摄像头
1126浏览 • 1回复 待解决
HarmonyOS Web组件加载H5白屏
480浏览 • 1回复 待解决
HarmonyOS webH5交互
1230浏览 • 1回复 待解决
HarmonyOS Web组件加载在线H5页面
642浏览 • 1回复 待解决
H5图片在Web组件中显示异常
667浏览 • 1回复 待解决
HarmonyOS 动画结束回调监听不到
324浏览 • 1回复 待解决
HarmonyOS ArkTS与H5交互方法
529浏览 • 1回复 待解决
Web组件h5页面如何交互?
686浏览 • 1回复 待解决
HarmonyOS h5 web上传图片,文件demo
453浏览 • 1回复 待解决
Web中webview和H5交互
1502浏览 • 1回复 待解决