HarmonyOS鸿蒙NEXT中实现卡片刷新功能示例代码

HarmonyOS鸿蒙NEXT中实现卡片刷新功能示例代码

介绍

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

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

效果预览

GIF

使用说明

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

实现思路

创建服务卡片

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

更多关于HarmonyOS鸿蒙NEXT中实现卡片刷新功能示例代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙NEXT中实现卡片刷新功能,可以通过FormExtensionAbilityFormBindingData来实现。以下是一个简单的示例代码:

import formBindingData from '@ohos.application.formBindingData';
import FormExtensionAbility from '@ohos.application.FormExtensionAbility';

export default class EntryFormAbility extends FormExtensionAbility {
    onAddForm(want) {
        let formData = {
            "title": "Card Title",
            "content": "Initial Content"
        };
        return formBindingData.createFormBindingData(formData);
    }

    onFormRefresh(formId) {
        let updatedFormData = {
            "title": "Updated Card Title",
            "content": "Updated Content"
        };
        let formData = formBindingData.createFormBindingData(updatedFormData);
        this.updateForm(formId, formData);
    }
}

在这个示例中,onAddForm方法用于初始化卡片数据,onFormRefresh方法用于刷新卡片数据。formBindingData.createFormBindingData用于创建卡片数据,this.updateForm用于更新卡片。

更多关于HarmonyOS鸿蒙NEXT中实现卡片刷新功能示例代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙NEXT中,卡片刷新功能可以通过FormExtensionAbilityFormProvider来实现。以下是一个简单的示例代码,展示如何刷新卡片:

public class MyFormExtensionAbility extends FormExtensionAbility {
    @Override
    public void onUpdateForm(int formId) {
        // 获取卡片数据
        FormBindingData formBindingData = new FormBindingData();
        formBindingData.setData("Hello, HarmonyOS!");

        // 更新卡片
        updateForm(formId, formBindingData);
    }
}

onUpdateForm方法中,你可以获取卡片数据并调用updateForm方法来刷新卡片内容。确保在config.json中正确配置FormExtensionAbility和卡片信息。

回到顶部