前言
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 | 系统触发更新 | 内容刷新 |
updateFormAPI | 应用主动调用 | 分数变化时 |
三、主动更新卡片
import{formProvider}from'@kit.FormKit';asyncfunctionupdateScoreCard(score:number):Promise<void>{constformId=AppStorage.get<string>('scoreFormId');if(!formId)return;awaitformProvider.updateForm(formId,{score:score.toString(),timestamp:newDate().toLocaleTimeString('zh-CN'),});}// 游戏结束时更新endGame(){this.updateScoreCard(this.score);}四、最佳实践
- 选择合适的更新频率:每日定点更新用于签到,周期更新用于排行榜
- 配合 onUpdateForm:系统触发更新时从本地读取最新数据
- 避免频繁更新:更新间隔至少 30 分钟,节省电量和流量
- 卡片内容简洁:2×2 显示核心数字,2×4 添加更多信息
总结
Form Kit 的定时更新能力让桌面卡片保持最新。核心要点:scheduledUpdateTime定点更新、updateDuration周期更新、 主动调用updateForm即时刷新、 更新频率适中选择。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- Form Kit 官方文档
- 卡片更新配置
- 第 168 篇:post-card
- 第 170 篇:AVPlayer