本文原创发布在华为开发者社区。
介绍
本示例基于用户首选项实现刷新服务卡片数据的功能。
效果预览
使用说明
长按应用添加服务卡片,在应用内点击刷新卡片数据后,服务卡片数据刷新。
实现思路
创建服务卡片
根据官网指南创建一个静态的arkts卡片,卡片的页面文件和生命周期文件均为自动生成,开发者可根据需要修改卡片UI页面。
卡片数据更新
将服务卡片的数据存在用户首选项数据库中,点击卡片刷新按钮时,根据获取到的卡片的formId更新服务卡片的数据。核心代码如下,源码参考CardManager.ets
updateCard(context?: Context, formId?: string) {
if (!context) {
context = EntryContext.getContext() as Context
}
if (!formId) {
formId = this.getFormId(context)
}
console.log('formIdformId', formId)
if (formId) {
let pref = dataPreferences.getPreferencesSync(context, { name: CardManager.KEY_CARD_INFO })
let cardInfo = pref.getSync(CardManager.KEY_CARD_INFO, {}) as FormDataClass
console.log('cardInfo', cardInfo)
let dataClass = new FormDataClass()
dataClass.title = cardInfo.title
dataClass.data = cardInfo.data
formProvider.updateForm(formId, formBindingData.createFormBindingData(dataClass))
this.saveCardId(context, formId)
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。