文章配图:定时更新与动态卡片

页面预览

前言

HarmonyOS 的 Form Kit 支持定时更新卡片内容,让用户在不打开应用的情况下看到最新信息。在「猫猫大作战」中,我们将高分记录和每日签到状态展示在桌面卡片上,通过定时更新保持信息新鲜。

一、定时更新配置

// form_config.json — 卡片资源配置
{
  "forms": [
    {
      "name": "ScoreWidget",
      "updateEnabled": true,           // 启用更新
      "scheduledUpdateTime": "08:00",  // 每日定点更新
      "updateDuration": 2,             // 每 2 小时更新
      "defaultDimension": "2*2",
      "supportDimensions": ["2*2", "2*4"]
    }
  ]
}

二、更新方式对比

更新方式 触发条件 适用场景
scheduledUpdateTime 每日固定时间 签到提醒
updateDuration 周期性更新 排行榜展示
onUpdateForm 系统触发更新 内容刷新
updateForm API 应用主动调用 分数变化时

三、主动更新卡片

import { formProvider } from '@kit.FormKit';

async function updateScoreCard(score: number): Promise<void> {
  const formId = AppStorage.get<string>('scoreFormId');
  if (!formId) return;

  await formProvider.updateForm(formId, {
    score: score.toString(),
    timestamp: new Date().toLocaleTimeString('zh-CN'),
  });
}

// 游戏结束时更新
endGame() {
  this.updateScoreCard(this.score);
}

四、最佳实践

  1. 选择合适的更新频率:每日定点更新用于签到,周期更新用于排行榜
  2. 配合 onUpdateForm:系统触发更新时从本地读取最新数据
  3. 避免频繁更新:更新间隔至少 30 分钟,节省电量和流量
  4. 卡片内容简洁:2×2 显示核心数字,2×4 添加更多信息

总结

Form Kit 的定时更新能力让桌面卡片保持最新。核心要点:scheduledUpdateTime 定点更新、 updateDuration 周期更新、 主动调用 updateForm 即时刷新、 更新频率适中选择

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


相关资源:

Logo

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

更多推荐