系列第 7 篇。手表不是手机页面缩小版。它最适合承载比赛现场的高频动作A 队 1、B 队 1、撤销、暂停播报、结束比赛。一、真实问题背景羽毛球比赛中最频繁的动作不是编辑队员也不是看统计而是加分。计分员如果一直低头点手机会错过球路也会影响比赛节奏。手表端的价值在于抬腕即可操作动作少反馈快。但手表端也有明显限制屏幕小、误触概率高、输入能力弱、长列表体验差。所以它不应该复制features/src/main/ets/scoring/LiveScoringPage.ets的完整页面而应该抽出最小计分动作。二、目标与边界手表端第一版建议只做四类动作1. A 队 1。2. B 队 1。3. 撤销上一步。4. 结束当前小局。边界是不在手表端创建对局不编辑队员不做复杂费用计算不展示完整技术统计。手表端只处理比赛中“低打扰”的计分输入手机端仍是主控。三、当前计分模型的可复用点手机端实时计分页已经有清晰的动作模型。页面里有ScoreMatch、playerA.score、playerB.score、撤销和结束逻辑播报也通过ScoreSpeechService封装。increaseScore(matchId: string, team: A | B): void { const match this.findMatch(matchId); if (match undefined || match.status finished) { return; } this.pushHistory(match); if (team A) { match.playerA.score 1; } else { match.playerB.score 1; } this.speakText(this.scoreAnnouncement(match)); }后续要做手表端时不应该重新写一套得分规则而是把这类动作下沉成服务层接口。四、建议新增 ScoreActionService为了让手机页和手表端共用逻辑可以新增common/src/main/ets/service/ScoreActionService.ets。它只暴露动作不暴露 UI。export type ScoreAction teamAPlus | teamBPlus | undo | finish; export class ScoreActionService { static apply(sessionId: string, matchId: string, action: ScoreAction): boolean { const detail SessionStore.getDetail(sessionId); // 读取比赛、校验状态、修改比分、写回 SessionStore return true; } }这样LiveScoringPage.ets继续负责大屏 UI手表端只负责触发动作。动作成功后再由手机端或平板端刷新状态。五、手表端交互应该更保守手表端必须减少误触。推荐交互是主屏A 队大按钮 / B 队大按钮 次级撤销 / 结束 长按确认结束比赛 振动加分成功反馈加分是单击结束是长按这样可以降低误结束。撤销只撤一步不做复杂历史列表。比分显示要足够大文字信息要少。六、数据同步的最低要求手表端计分必须保证两个原则1. 手表离线或断开时手机端不能丢失主状态。2. 手表动作重复到达时不能连续加两次同一分。可以给每次动作增加actionIdwatchActionId watchDeviceId timestamp sequence手机端处理后记录最近动作 ID重复动作直接忽略。这个策略比单纯靠按钮防抖更可靠。七、和语音播报的关系手机端已经有common/src/main/ets/service/ScoreSpeechService.ets手表端不一定负责播报。更合理的方式是手表提交加分动作手机端更新比分并调用ScoreSpeechService.speak()。这样语音包、音量、失败降级仍由手机端管理。if (ScoreActionService.apply(sessionId, matchId, teamAPlus)) { ScoreSpeechService.speak(当前比分 8 比 6); }八、官方参考手表端能力应以 HarmonyOS 多设备和应用开发官方文档为准。本文重点是工程拆分和计分动作设计不把设备通信细节写死在页面里。华为开发者文档HarmonyOS 应用开发九、工程验收清单-features/src/main/ets/scoring/LiveScoringPage.ets中计分动作可被抽为服务。-common/src/main/ets/storage/SessionStore.ets能按sessionId保存对局详情。-common/src/main/ets/service/ScoreSpeechService.ets不依赖具体页面可由动作服务触发。-common/src/main/ets/model/Match.ets的比分字段足够承载手表端动作。- 验证时间2026-06-29当前工程目标包含 HarmonyOS 6.0/API 20昨日 Hvigor 构建已验证BUILD SUCCESSFUL。十、小结手表端计分的关键不是把手机页缩小而是抽出最小动作协议。当前工程已经有计分页面、对局存储和语音播报基础下一步适合先落ScoreActionService再让手表端成为一个轻输入设备。十一、下一篇衔接有了手表端输入后平板端就更适合作为展示端。下一篇继续讲手机和平板如何分工手机控制平板看板。