HarmonyOS 鸿蒙Next web没有执行onLoadIntercept方法

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next web没有执行onLoadIntercept方法

H5使用window.location.href=skipUrl方式跳转链接,客户端web没有执行onLoadIntercept方法  

2 回复

并未出现未执行onLoadIntercept的问题,测试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') {
              console.log('----------------1----------------')
              console.log(event.data.getRequestUrl())
              return true
            }
            if (event.data.getRequestUrl() == 'https://www.baidu.com/') {
              console.log('---------------2-----------------')
              console.log(event.data.getRequestUrl())
              return true
            }
            console.log('---------------3-----------------')
            console.log(event.data.getRequestUrl())
            return false
          })
      }
      .height('100%')
    }
    .width('100%')
  }
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>第一页</h1>
<a href="https://www.baidu.com"> 百度1 </a>
<br>
<a href="https://www.baidu.com" target="_blank"> 百度2 </a>
<br>
<button onclick="myFunction()">点击</button>
</body>
<script type="text/javascript">
    function myFunction() {
        window.location.href = "https://test-chpp.log56.com/wbs_h5/index.html#/carriage_protocol_description?tax_waybill_id=4631316&from_type=1761&isNew=1&moreLimitOriginId=&specialScene=&NEW_WVW";
    }
</script>
</html>
Second.html
<!DOCTYPE html>
<html>
<head><title></title></head>
<body><h1>欢迎来到详情页!</h1>
<p>您已成功从首页跳转到此页,并在URL中添加了参数。页面将自动返回首页。</p></body>
</html>

参考下面的指导文档 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-redirection-and-browsing-history-mgmt-V5#页面跳转

更多关于HarmonyOS 鸿蒙Next web没有执行onLoadIntercept方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


查阅了一些资料,对于HarmonyOS鸿蒙Next web环境中未执行onLoadIntercept方法的问题,这通常涉及到应用生命周期管理或特定API的调用时机。在鸿蒙系统中,应用的加载和初始化流程有其独特的机制,可能与其他操作系统存在差异。

首先,请确认你的onLoadIntercept方法是否放置在正确的类中,并且该类是否作为应用启动时的入口点被正确配置。此外,检查该方法是否被其他逻辑(如条件判断)意外跳过,或者是否有其他生命周期方法(如onCreate)在onLoadIntercept之前被调用并影响了其行为。

同时,考虑到鸿蒙系统的持续更新和API的迭代,建议查阅最新的鸿蒙开发者文档,确认onLoadIntercept方法的最新使用说明和限制条件。确保您的开发环境(包括SDK版本)与文档描述相匹配。

如果上述检查无误但问题依旧存在,可能是系统级别的bug或特定环境下的兼容性问题。此时,建议通过鸿蒙系统的开发者论坛或社区寻求帮助,或者直接联系华为开发者支持(尽管您不希望这样)。当然,您也可以通过我们提供的官网客服渠道反馈问题,我们将尽力协助解决。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部