【OpenHarmony 北向应用开发】服务卡片数据每秒刷新的实现?
【OpenHarmony 北向应用开发】Arkts服务卡片数据每秒刷新的实现?-鸿蒙开发者社区-51CTO.COM
简介:
参考以下官方文档
- 通过UIAbility刷新卡片内容 (openharmony.cn)
- 通过FormExtensionAbility刷新卡片内容 (openharmony.cn)
- 定时刷新和定点刷新 (openharmony.cn)
其中,通过router或call事件刷新卡片内容, 通过message事件刷新卡片内容,都是用户执行某个操作触发相应的回调,定时刷新和定点刷新通过配置了updateDuration
(定时刷新) 或调用setFormNextRefreshTime()
接口来实现,但最短刷新时间都以分钟为单位,那么如何实现像计步器卡片(JS) (huawei.com),这种类型的每隔几秒刷新呢?
实现原理:
通过设置定时函数每秒调用formProvider的updateForm方法实现卡片更新
实现难点:
难点一: Arkts卡片如何接收要刷新的数据
通过 LocalStorage:页面级UI状态存储 (openharmony.cn)
1 |
|
难点二: updateForm只能更新指定卡片,如何获取卡片的唯一标识
在卡片FormExtensionAbility生命周期接口,创建卡片时可以通过want参数获取卡片的唯一表示formId,为了在其他地方调用或者卡片不止一个为方便管理建议使用关系形数据库存储 保存应用数据 关系型数据库的使用
1 |
|
难点三: 定时函数写在哪里
可以写在主页面的生命周期回调函数aboutToAppear 中,然后再aboutToDisappear 中进行销毁
1 |
|
参考资料:
1. 卡片生命周期管理
2. LocalStorage:页面级UI状态存储
LocalStorage:页面级UI状态存储 (openharmony.cn)
3. 关系型数据库
第五章-保存应用数据 _关系型数据库的使用_哔哩哔哩_bilibili
4. 卡片数据绑定类和FormProvider模块
@ohos.app.form.formBindingData (卡片数据绑定类) (openharmony.cn)
@ohos.app.form.formProvider (FormProvider) (openharmony.cn)
1 |
|
5. 页面和自定义组件生命周期
6. 实战项目
【OpenHarmony 北向应用开发】服务卡片数据每秒刷新的实现?
https://leaf-domain.gitee.io/2023/12/21/openharmony/arktsCard/