HarmonyOS 鸿蒙Next 卡片的FormExtensionAbility和应用UIAbility之间通讯是靠什么呢?
HarmonyOS 鸿蒙Next 卡片的FormExtensionAbility和应用UIAbility之间通讯是靠什么呢?
学了一些知识发现,大多是卡片和他进程的那个FormExtensionAbility之间的通讯,通过postCardAction()和FormBindingData
但是FormExtensionAbility和UIAbility就完全没有通讯接口,总不能全靠持久化存储吧。难道说也是用postCardAction()和updateForm这套吗?
5 回复
嗯,我也进行了卡片开发,数据传递主要还是靠localStarage,我想到了一个反向传递到UIAbility的办法,你看行不,比如我在卡片那边用双向绑定的@LocalStorageLink绑定一个属性,然后UIAbility那边也绑上,那我在卡片这边更改,UIAbility那边是不是也就变了能用了。
应该是不可以的
为什么呢
HarmonyOS鸿蒙Next中,卡片的FormExtensionAbility与应用UIAbility之间的通讯主要依赖于以下几种机制:
- Intent机制:FormExtensionAbility可以通过发送Intent来启动UIAbility,并携带必要的参数和数据。UIAbility在接收到Intent后,根据参数进行相应的处理和界面展示。
- Ability间通信:系统提供了Ability间的通信机制,如通过DataAbility或使用IRemoteObject进行跨进程通信。这使得FormExtensionAbility可以请求UIAbility执行特定操作或获取数据。
- 事件总线或消息队列:在某些复杂场景下,可以使用事件总线(如EventHub)或消息队列来实现能力的解耦和通信。FormExtensionAbility可以发布事件或消息,由UIAbility订阅或监听,并进行相应处理。
这些机制共同确保了FormExtensionAbility与应用UIAbility之间的高效、灵活的通讯。
鸿蒙Next高级实战学习地址:https://www.itying.com/goods-1204.html