HarmonyOS 鸿蒙arkts是否可以跨多个页面进行通知刷新

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

HarmonyOS 鸿蒙arkts是否可以跨多个页面进行通知刷新 大家好,

  1. 鸿蒙arkts 有存在可以跨多个页面刷新数据的模组吗? 如android 的event bus 这类通知类模块?
9 回复

有消息传递机制,如下

  • Eventhub
  • Emitter
  • CommonEvent

更多关于HarmonyOS 鸿蒙arkts是否可以跨多个页面进行通知刷新的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


导入Notification模块

  • 可直接修改,this.numBar = ‘hello’
  • 在其他页面注册监听事件,然后在那个页面实现对应的消息处理函数

您好,如何在第一个发送事件的页面,引用第二个时间回调的方法呢

这是第一个页面的代码

@Component 
@Entry 
struct NotificationPage1{
  @State numBar:string ="123"
  build(){
    Column(){
      Button(`发送通知${this.numBar}`).onClick((event: ClickEvent) => {
        //发布公共事件
        try {
          CommonEventManager.publish("event", publishCallBack);
        } catch(err) {
          console.error('publish failed, catch error' + JSON.stringify(err));
        }
      })
    }
  }

}

这是我的第二个页面的代码

@Entry
@Component
struct IncidentMain {
  @State aaaa: string = "123"
  //发布公共事件回调
  publishCallBack(err) {
    if (err) {
      console.error("publish++++ failed " + JSON.stringify(err));
    } else {
      console.info("publish++++");
      this.aaaa = 'hello'
    }
  }
  build() {
    Column() {
      Divider().height(15).width('0%')
      Row() {
        Text(`事件处理${this.aaaa}`)
      }.justifyContent(FlexAlign.Start).width('100%')

      Divider().margin(5).width('0%')

CommonEventManager.publish(“event”, publishCallBack); publishCallBack这个方法在第一个页面中没引用到,

我没有自己试过只不过看文档原生就支持。

[@ohos.events.emitter (Emitter)-公共事件与通知-ArkTS接口参考-ArkTS API参考 | 华为开发者联盟 (huawei.com)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/js-apis-emitter-0000001428061916-V2)

provide. consume这俩个,

我第一时间想到的也是这两个装饰器,但对于Android Bus的高级功能,例如粘性、背压等问题,不知道怎么解决。请问你有没有解决这些问题?

我记得文档上有

HarmonyOS(鸿蒙)中的ArkTS(Ark TypeScript)框架支持跨页面进行通知刷新,这是通过其强大的组件化机制和事件总线系统实现的。

在ArkTS中,你可以定义一个全局状态管理或者事件中心,用于在不同页面间传递通知或状态更新。当某个页面需要刷新时,它可以发布一个事件或者更新全局状态,其他订阅了该事件或状态的页面将能够接收到通知并进行相应的刷新操作。

具体来说,你可以利用ArkTS提供的事件监听和触发机制,或者通过全局状态管理工具(如Vuex、Redux等类似的概念,在ArkTS中可能有其对应的实现或替代方案)来实现跨页面的通知刷新。

需要注意的是,跨页面通信和状态管理是一个复杂的话题,涉及到应用架构的设计。在实际开发中,你需要根据应用的具体需求和复杂度来选择合适的技术方案。

如果你已经按照上述思路进行了实现,但仍然遇到问题,可能是因为具体实现细节上的差异导致的。此时,你可以检查事件发布和订阅的逻辑是否正确,以及全局状态是否在不同页面间保持了一致性。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部