HarmonyOS 5.0 应用开发——Ability 与 Page 数据传递
【高心星出品】
Ability 与 Page 数据传递
基于当前的应用模型,可以通过以下几种方式来实现 UIAbility 组件与 UI 之间的数据同步。
使用 EventHub 进行数据通信:在基类 Context 中提供了 EventHub 对象,可以通过发布订阅方式来实现事件的传递。在事件传递前,订阅者需要先进行订阅,当发布者发布事件时,订阅者将接收到事件并进行相应处理。
使用 AppStorage/LocalStorage 进行数据同步:ArkUI 提供了 AppStorage 和 LocalStorage 两种应用级别的状态管理方案,可用于实现应用级别和 UIAbility 级别的数据同步。
Page 向 Ability 传递数据
EventHub 为 UIAbility 组件提供了事件机制,使它们能够进行订阅、取消订阅和触发事件等数据通信能力。
在基类 Context 中,提供了 EventHub 对象,可用于在 UIAbility 组件实例内通信。使用 EventHub 实现 UIAbility 与 UI 之间的数据通信需要先获取 EventHub 对象,本章节将以此为例进行说明。
下面案例实现:页面点击按钮发送颜色给 ability,从而修改 ability 的窗口背景色。
EntryAbility 代码
eventpage 页面代码
Ability 向 Page 传递数据
ArkUI 提供了 AppStorage 和 LocalStorage 两种应用级别的状态管理方案,可用于实现应用级别和 UIAbility 级别的数据同步。使用这些方案可以方便地管理应用状态,提高应用性能和用户体验。其中,AppStorage 是一个全局的状态管理器,适用于多个 UIAbility 共享同一状态数据的情况;而 LocalStorage 则是一个局部的状态管理器,适用于单个 UIAbility 内部使用的状态数据。
下面一个案例:在 ability 获取窗口可布局界面的宽度和高度(窗口高度-通知栏高度)
EntryAbility 代码
eventpage 页面代码
版权声明: 本文为 InfoQ 作者【高心星】的原创文章。
原文链接:【http://xie.infoq.cn/article/2e889e6e8c15530a7e2f4cd30】。文章转载请联系作者。
评论