APP 服务卡片获取 APP 内数据
(1)根据需要创建一个服务卡片,
ArkTS 卡片创建完成后,工程中会新增如下卡片相关文件:卡片生命周期管理文件(EntryFormAbility.ets)、卡片页面文件(WidgetCard.ets)和卡片配置文件(form_config.json)
(2)在 module.json5 文件中配置,对应字段参考文档https:
//developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-ui-widget-configuration-V5
(3)卡片的具体配置信息在开发视图的 resources/base/profile/目录下的 form_config.json,对应字段参考文档https:
//developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-ui-widget-configuration-V5
(4)ui 开发卡片的 ui 代码在 ets 目录下的 widget 中,接收参数逻辑
(5)卡片生命周期以及给卡片传递数据
在 EntryFormAbility 中的 onAddForm 写初始化逻辑,如获取卡片 id 传递给 WidgetCard 页面 触发卡片更新的时候就会触发 onUpdateForm 钩子函数,一般来说就用到这两个
(6)在卡片初始化时获取 app 的相关数据
1、在 WidgetCard 中调用函数 postCardAction 通知 app 根据 formid 更新卡片数据
此时会有一个问题,直接在 WidgetCard 页面的 aboutToAppear()直接调用 postCardAction 方法通知 app 时,来不及获取到 formid,就导致 app 不能正确的将卡片数据更新到卡片上。 解决方案是给 WidgetCard 页面的 formid 设置一个初始值并监听它的变化,变化了再运行函数 postCardAction 通知 app,示例如下
2、在 app 中接收并更新卡片数据
在 EntryAbility 的 onCreate 钩子函数中使用 callee 函数监听卡片动态并作出反应