HarmonyOS 鸿蒙Next Web组件拦截事件

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

HarmonyOS 鸿蒙Next Web组件拦截事件

goBack(){
  if(this.isAlipay){
    my.postMessage({event:"sign-refresh"});
    my.navigateBack({
      delta: 2
    })
  }else{
    wx.miniProgram.getEnv(function(res) {
      if(res.miniprogram){
        wx.miniProgram.postMessage({
          data:{
            event:'sign-refresh',
            params: {}
          }
        })
        wx.miniProgram.navigateBack({
          delta: 2
        })
      }
    })
  }
  try{
    webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify({type: 'close'}));
  } catch(err){
    // 
  }
}

这个是h5链接上的代码,我想在Web拦截close事件,请问怎么拦截,看样子好像是专门针对ios的关闭,但鸿蒙没办法拦截到


更多关于HarmonyOS 鸿蒙Next Web组件拦截事件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

可以使用onBackPress()来拦截手机返回键,对应官网文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-custom-component-lifecycle-V5#onbackpress

ArkTS侧可以使用runJavaScript()来调用前端页面方法,可参考官网文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-in-app-frontend-page-function-invoking-V5

ArkTS侧和前端页面通信,可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-app-page-data-channel-V5

更多关于HarmonyOS 鸿蒙Next Web组件拦截事件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


大佬,我是想拦截点击 goBack() 的时候,拦截下面这段事件

webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify({type: ‘close’}));

首先:webkit.messageHandlers:这是一个在iOS的WebView(比如UIWebView或WKWebView)中用于与原生应用通信的接口。它允许Web内容(HTML/JavaScript)发送消息到iOS的原生代码。

其次:goBack是JS方法,是否可以采用在前端goback方法内,调用应用的Arkts方法来实现你要的效果?

大佬,你的意思我要改造h5的方法去调用鸿蒙的应用的方法吗,如果是的话,这个h5是第三方的,没关闭webpack的代码功能所以看的到;,

在HarmonyOS鸿蒙系统中,针对Next Web组件的事件拦截,通常涉及对组件事件处理机制的理解和应用。

在HarmonyOS的Next Web组件中,事件拦截通常是通过事件监听和事件冒泡机制来实现的。你可以通过为组件添加事件监听器来捕获特定的事件,例如点击、触摸等。

  1. 事件监听:在组件上设置事件监听器,如addEventListener,用于监听特定类型的事件。

  2. 事件处理:在事件监听器的回调函数中处理事件。如果需要在某个组件层级拦截事件,可以在该组件的事件处理函数中实现逻辑,决定是否继续向上冒泡。

  3. 事件冒泡:默认情况下,事件会在DOM树中向上冒泡,直到被某个事件监听器捕获并处理。如果希望在某个组件层级阻止事件冒泡,可以使用event.stopPropagation()方法。

  4. 自定义事件:如果需要,还可以定义和触发自定义事件,以便在组件间进行更复杂的通信和事件处理。

请注意,具体实现可能因HarmonyOS版本和Next Web组件库的更新而有所变化。如果上述方法无法满足你的需求,或者你在实施过程中遇到问题,请直接联系官网客服。官网地址是:https://www.itying.com/category-93-b0.html

回到顶部