文章配图:FormExtensionAbility 的实现

页面预览

前言

FormExtensionAbility 是服务卡片的生命周期管理器,负责卡片的创建、更新、删除等操作。每个卡片类型都需要一个对应的 FormExtensionAbility。

本文以「猫猫大作战」的战绩卡片管理为锚点,讲解 FormExtensionAbility 的实现。

提示:本系列不讲 ArkTS 基础语法与环境搭建。

一、卡片生命周期

import { FormExtensionAbility } from '@kit.FormKit';
import { formBindingData } from '@kit.FormKit';

export default class ScoreCardAbility extends FormExtensionAbility {
  onAddForm(want) {
    // 创建卡片
    return formBindingData.createFormBindingData({
      score: '88888',
      player: '猫猫侠'
    });
  }

  onFormEvent(formId, message) {
    // 卡片交互事件
    if (message === 'refresh') {
      this.onUpdateForm(formId);
    }
  }

  onUpdateForm(formId) {
    // 更新卡片数据
    return formBindingData.createFormBindingData({
      score: this.getLatestScore().toString(),
      player: '猫猫侠'
    });
  }

  onRemoveForm(formId) {
    // 卡片从桌面移除
    console.info(`卡片 ${formId} 已移除`);
  }
}

二、总结

FormExtensionAbility 管理卡片的完整生命周期。

核心要点

  • onAddForm 创建卡片时调用
  • onUpdateForm 定时/事件触发更新
  • onRemoveForm 卡片移除时清理

下一篇预告:第 168 篇将深入 postCardAction——卡片点击回跳。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐