HarmonyOS应用开发实战:猫猫大作战-定时更新与动态卡片
·


前言
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);
}
四、最佳实践
- 选择合适的更新频率:每日定点更新用于签到,周期更新用于排行榜
- 配合 onUpdateForm:系统触发更新时从本地读取最新数据
- 避免频繁更新:更新间隔至少 30 分钟,节省电量和流量
- 卡片内容简洁:2×2 显示核心数字,2×4 添加更多信息
总结
Form Kit 的定时更新能力让桌面卡片保持最新。核心要点:scheduledUpdateTime 定点更新、 updateDuration 周期更新、 主动调用 updateForm 即时刷新、 更新频率适中选择。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
更多推荐

所有评论(0)