本文原创发布在华为开发者社区

介绍

本示例基于用户首选项实现刷新服务卡片数据的功能。

实现卡片刷新功能源码链接

效果预览

请添加链接描述

使用说明

长按应用添加服务卡片,在应用内点击刷新卡片数据后,服务卡片数据刷新。

实现思路

创建服务卡片

根据官网指南创建一个静态的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)
    }
  }

鸿蒙场景化代码
1 声望0 粉丝