HarmonyOS 鸿蒙Next 使用EventHub进行数据通信的话可以反向吗?
HarmonyOS 鸿蒙Next 使用EventHub进行数据通信的话可以反向吗? 官方举得例子都是从UIability订阅,从控件方发送消息,那可以反向吗?比如UIAbility发送消息,控件那端订阅,获取消息。
可以,但EventHub需要上下文而emitter不需要,而上下文context的方法获取方式不一样。
在UIability中的写法是
this.context.eventHub.on()//监听
this.context.eventHub.emit()//发送
而在pages的组件中是
getContext().eventHub.on()//监听
getContext().eventHub.emit()//发送
由于emitter不需要考虑context问题,我封装了一个工具类可以参考:
https://blog.csdn.net/zhongcongxu01/article/details/142582564
更多关于HarmonyOS 鸿蒙Next 使用EventHub进行数据通信的话可以反向吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
能双向用就好。毕竟看了下通讯这个方案是最简单的了。要是单向就有点尴尬了。 又写了工具类,大佬又贡献了啊哈哈,看得出你真的好爱CSDN啊。
最近参加那个写文章活动,评价标准是阅读量,我发现CSDN的流量最大哈。
主要是CSDN推送太舍得钱了,你随便一搜,不管对不对,有没有用,甚至相不相关。绝对前几条能看到CSDN的文章,
emitter满足不了?
这个不是控件用这个方法发消息
UIAbility收消息吗
我是说能不能反过来用,
希望HarmonyOS能继续加强在安全性方面的研发,保护用户的隐私和数据安全。
基于这个自己封装下。感觉这个像是省代码封装,并不是现在无法实现。
不过要官方实现,应该不会。这个个人感觉更像是一个业务的需求,而不是需要系统或者app必须要的功能。
用过emitter吗。emitter应该可以的,
在HarmonyOS鸿蒙Next系统中,使用EventHub进行数据通信时,反向通信并不是EventHub设计的初衷或主要功能。EventHub主要用于在系统中不同组件或服务之间高效地分发事件,它更多扮演的是一个事件分发者的角色,而不是一个双向通信的通道。
EventHub的设计是为了实现事件从生产者到消费者的单向流动。生产者(如硬件驱动、系统服务等)将事件发布到EventHub,消费者(如应用、服务进程等)则订阅并处理这些事件。这种机制确保了事件的实时性和系统的稳定性。
如果你需要在HarmonyOS中实现双向通信,可以考虑使用其他机制,如消息队列、套接字(Sockets)或特定的IPC(进程间通信)机制。这些机制提供了更灵活和双向的通信能力,可以满足不同应用场景的需求。
总之,HarmonyOS中的EventHub主要用于单向事件分发,不支持反向通信。如果你需要实现双向通信,请考虑使用其他适合的通信机制。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html