开发日志

智能手表项目开发日志 006:鸿蒙应用原型与端到端联调

记录鸿蒙手机应用原型的页面规划、设备状态展示和端到端联调,并说明演示原型与当前 ArkTS 工程快照之间的差异。

开发日志2025-08-11模拟智能手表系统HarmonyOSArkTS手机应用端云联调项目复盘

手机端不是设备端的镜像

手表屏幕适合显示当前状态,手机应用则适合查看设备数据、进行远程控制和承接云端鉴权。PPT 中的鸿蒙应用原型按照这个思路设计了健康概览、运动记录和设备设置三个主要入口;真正找到的可运行工程是 D:\DSexs\Myproject\NewWatch_1

NewWatch_1 的页面和通信实现

该工程包含 Index.etsMainPage.etsHomeComp.etsControllPage.ets。登录页会先向华为云 IAM 获取 Token,再调用后端登录接口,登录成功后将用户信息保存到 AppStorage 并跳转到主页。

主页通过 webSocket.createWebSocket() 建立实时连接,接收服务端推送的 JSON 数据,并把设备属性写入 SmartWatch 对象。主页下的控制页还会调用设备影子接口获取最新状态,再通过 HTTP POST 下发控制命令。当前代码明确实现了光照、温度、湿度的数据显示,以及灯光和电机的开启/关闭控制。

工程的 main_pages.json 注册了登录页和主页,模块配置申请了网络权限,目录中还存在已经生成的 entry-default-unsigned.hap。构建日志显示工程完成过 HAP 打包,但同时存在 ESObject 类型受限等 ArkTS 警告,因此“能够构建”与“已经达到产品级质量”仍然是两件事。

原型页面和代码页面要分开描述

PPT 展示的健康概览、运动记录、睡眠、体重、NFC 门禁等页面,代表项目的原型设计和展示目标。NewWatch_1 当前可核验的 ArkTS 代码则更接近物联网设备监控应用,SmartWatch 模型暂未包含步数、运动状态、门禁状态和报警开关等字段。

因此,项目说明中可以说鸿蒙端已经完成了登录、鉴权、实时接收、设备影子查询和基础远程控制;但不能把 PPT 中所有扩展页面都写成当前源码已经实现。后续如果存在比 NewWatch_1 更新的代码,应以包含这些业务字段和页面的工程作为最终版本。

联调要看闭环,不只看单向显示

端到端联调至少要覆盖四条路径:设备温度、湿度和光照能否上报;手机端能否通过 WebSocket 正确接收;手机端能否通过设备影子接口获取状态;手机端下发的灯光和电机命令能否到达设备并产生反馈。若继续接入完整智能手表业务,还需要增加步数、运动、门禁和报警开关的双向验证。

对于实时数据,项目资料给出了 HTTP 主动获取和 WebSocket 实时推送的设计;对于云端设备接入,南向代码已经使用 MQTT。后续实现时应先定义一层稳定的数据服务接口,让页面不直接依赖底层 MQTT 或 AMQP 细节。

阶段结果

NewWatch_1 让鸿蒙端从页面原型推进到了可构建、可登录、可接收设备数据和可下发控制命令的工程实现,南向设备完成了可上报、可反控的基础能力。项目复盘的关键是把当前已实现的物联网控制能力,与 PPT 中展示的完整智能手表扩展方向分开记录,后续接手者才能准确判断还需要补齐哪些字段和页面。