Files
akmon/doc_zhipao/wearable_app_ui.md
2026-01-20 08:04:15 +08:00

20 KiB
Raw Blame History

现在需要设计一个APP的ui,用于通过蓝牙方式进行设备连接,并直观显示用户当前监测的生理数据,目前可以想到的内容包括: 1.实时监测的 心率,血氧,步数,我建议以时间轴的方式 用ak-chart的方式直观展示可以几个指标用不同的颜色来表示同时辅以文字方式只显示当前和一些特征指标比如最高最低。如果有运动速度也一并显示。 2.历史数据,如睡眠数据,睡眠质量评估 3.可延展的信息

一、APP整体架构与导航

1.1 主要页面结构

  • 首页/仪表板:设备连接状态、核心生理指标概览
  • 实时监测:详细的实时数据图表展示
  • 历史数据:睡眠、运动历史记录与分析
  • 设备管理:蓝牙连接、设备设置、固件更新
  • 个人中心:用户资料、健康目标、设置

1.2 导航设计

  • 底部Tab导航首页、监测、历史、我的
  • 顶部状态栏:显示蓝牙连接状态、电池电量、时间

二、首页/仪表板设计

2.1 页面布局

┌─────────────────────────────┐
│  状态栏:蓝牙连接状态       │
├─────────────────────────────┤
│  设备卡片                    │
│  ├─ 设备名称:运动手环       │
│  ├─ 电量85% 🔋            │
│  └─ 连接状态:已连接        │
├─────────────────────────────┤
│  核心指标卡片组             │
│  ├─ 心率72 bpm ❤️        │
│  ├─ 血氧98% 🩸           │
│  ├─ 步数8,547 步 👟      │
│  └─ 今日卡路里320 kcal   │
├─────────────────────────────┤
│  快捷功能                    │
│  ├─ 开始监测 ├─ 历史数据    │
│  ├─ 紧急报警 ├─ 设置       │
└─────────────────────────────┘

2.2 交互设计

  • 点击设备卡片:进入设备详情页
  • 点击指标卡片:跳转到对应详细监测页面
  • 长按快捷功能:显示更多选项

三、实时监测页面设计

3.1 页面布局

┌─────────────────────────────┐
│  返回 | 实时监测            │
├─────────────────────────────┤
│  控制面板                    │
│  ├─ ▶️ 开始/⏸️ 暂停         │
│  ├─ 监测模式:心率+血氧     │
│  └─ 持续时间00:15:32      │
├─────────────────────────────┤
│  图表区域 (ak-chart)        │
│  ├─ 时间轴过去30分钟      │
│  ├─ 心率曲线:红色          │
│  ├─ 血氧曲线:蓝色          │
│  ├─ 步数柱状图:绿色        │
│  └─ 运动速度:橙色          │
├─────────────────────────────┤
│  当前数值面板               │
│  ├─ 心率75 bpm (最高82)   │
│  ├─ 血氧97% (最低95%)     │
│  ├─ 步数245 (今日累计)    │
│  └─ 速度6.2 km/h          │
├─────────────────────────────┤
│  异常提醒                    │
│  └─ ⚠️ 心率异常,请注意休息 │
└─────────────────────────────┘

3.2 图表交互

  • 滑动时间轴:查看历史数据
  • 点击图表点:显示详细数值和时间戳
  • 双指缩放:放大/缩小时间范围
  • 长按:锁定当前数值显示

3.3 数据更新机制

  • 实时数据每秒更新
  • 图表平滑动画过渡
  • 异常数据高亮显示

四、历史数据页面设计

4.1 睡眠数据页面

┌─────────────────────────────┐
│  返回 | 睡眠记录            │
├─────────────────────────────┤
│  日期选择器                  │
│  ├─ 2025-10-15 (今天)       │
│  └─ ◀ 2025-10-14 ▶         │
├─────────────────────────────┤
│  睡眠概览卡片               │
│  ├─ 总睡眠时间8h 15m      │
│  ├─ 深睡4h 30m           │
│  ├─ 浅睡2h 45m           │
│  ├─ 快速眼动1h 00m       │
│  └─ 睡眠质量:良好 (85%)   │
├─────────────────────────────┤
│  睡眠阶段图表               │
│  ├─ 时间轴22:00-06:00     │
│  ├─ 深睡:深蓝色            │
│  ├─ 浅睡:浅蓝色            │
│  ├─ 快速眼动:紫色          │
│  └─ 清醒:灰色              │
├─────────────────────────────┤
│  睡眠建议                    │
│  └─ 💡 建议提前1小时入睡    │
└─────────────────────────────┘

4.2 运动历史页面

┌─────────────────────────────┐
│  返回 | 运动记录            │
├─────────────────────────────┤
│  时间筛选:今日 | 本周 | 本月 │
├─────────────────────────────┤
│  运动记录列表               │
│  ├─ 跑步 2025-10-15         │
│  │  ├─ 距离5.2km         │
│  │  ├─ 时长45min         │
│  │  ├─ 平均心率145bpm    │
│  │  └─ 卡路里380kcal     │
│  ├─ 骑行 2025-10-14         │
│  │  ├─ 距离12.8km        │
│  │  ├─ 时长1h 20min      │
│  │  ├─ 平均心率135bpm    │
│  │  └─ 卡路里520kcal     │
└─────────────────────────────┘

五、设备管理页面设计

5.1 蓝牙连接页面

┌─────────────────────────────┐
│  返回 | 设备连接            │
├─────────────────────────────┤
│  当前设备                    │
│  ├─ 运动手环 Pro             │
│  ├─ 状态:已连接 🔗         │
│  ├─ 信号强度:强 📶         │
│  └─ 断开连接                │
├─────────────────────────────┤
│  可用设备                    │
│  ├─ 扫描设备                │
│  ├─ 手环 A (未连接)         │
│  ├─ 手环 B (未连接)         │
│  └─ 刷新列表                │
├─────────────────────────────┤
│  连接历史                    │
│  ├─ 手环 Pro (最后连接)     │
│  └─ 手环 Lite (昨天)        │
└─────────────────────────────┘

5.2 设备设置页面

┌─────────────────────────────┐
│  返回 | 设备设置            │
├─────────────────────────────┤
│  基本信息                    │
│  ├─ 设备名称:运动手环 Pro   │
│  ├─ 固件版本v2.1.5        │
│  ├─ 硬件版本HW1.0         │
│  └─ 序列号AK20250001      │
├─────────────────────────────┤
│  监测设置                    │
│  ├─ 心率监测:开            │
│  ├─ 血氧监测:开            │
│  ├─ 睡眠监测:开            │
│  └─ 自动监测:开            │
├─────────────────────────────┤
│  提醒设置                    │
│  ├─ 心率异常提醒:开        │
│  ├─ 久坐提醒:每小时        │
│  ├─ 饮水提醒:开            │
│  └─ 闹钟07:00             │
├─────────────────────────────┤
│  系统功能                    │
│  ├─ 查找设备                │
│  ├─ 固件更新                │
│  ├─ 恢复出厂设置            │
│  └─ 解绑设备                │
└─────────────────────────────┘

六、个人中心页面设计

6.1 页面布局

┌─────────────────────────────┐
│  返回 | 个人中心            │
├─────────────────────────────┤
│  用户信息                    │
│  ├─ 头像                     │
│  ├─ 姓名:张三               │
│  ├─ 年龄25岁              │
│  └─ 身高/体重175cm/65kg   │
├─────────────────────────────┤
│  健康目标                    │
│  ├─ 每日步数8000步        │
│  ├─ 目标心率120-150bpm    │
│  ├─ 睡眠目标8小时         │
│  └─ 体重目标62kg          │
├─────────────────────────────┤
│  功能入口                    │
│  ├─ 健康报告                │
│  ├─ 数据导出                │
│  ├─ 隐私设置                │
│  └─ 关于我们                │
├─────────────────────────────┤
│  设置                        │
│  ├─ 通知设置                │
│  ├─ 单位设置                │
│  ├─ 语言设置                │
│  └─ 退出登录                │
└─────────────────────────────┘

七、UI风格与设计规范

7.1 色彩规范

  • 主色调:蓝色系 (#2196F3)
  • 辅助色
    • 心率:红色 (#F44336)
    • 血氧:蓝色 (#2196F3)
    • 步数:绿色 (#4CAF50)
    • 睡眠:紫色 (#9C27B0)
    • 警告:橙色 (#FF9800)
    • 危险:红色 (#F44336)

7.2 图标规范

  • 使用Material Design图标
  • 生理指标使用Emoji图标辅助识别
  • 状态图标:连接(🔗)、断开()、充电(🔋)、报警(⚠️)

7.3 字体规范

  • 标题18px Medium
  • 正文14px Regular
  • 小字12px Regular
  • 数值16px Bold

7.4 交互规范

  • 点击反馈:涟漪效果
  • 加载状态:骨架屏或进度条
  • 错误状态Toast提示 + 重试按钮
  • 成功状态:绿色勾选动画

八、响应式设计

8.1 不同屏幕适配

  • 手机端:标准布局
  • 平板端:双列布局,图表更大
  • 折叠屏:适应外屏显示关键信息

8.2 暗色模式

  • 支持系统暗色模式切换
  • 图表颜色自动调整
  • 保持良好的对比度

九、异常处理与用户引导

9.1 连接异常

  • 蓝牙未开启:引导开启蓝牙
  • 设备离线:显示离线状态,提示检查设备
  • 连接超时:自动重试,显示进度

9.2 数据异常

  • 传感器故障:显示故障图标,建议检查设备
  • 数据缺失:显示"--",提示稍后重试
  • 网络异常:离线缓存数据,网络恢复后同步

9.3 新手引导

  • 首次使用:设备连接引导
  • 功能介绍:页面首次进入时的浮层提示
  • 操作提示重要按钮的Tooltip

十、技术实现建议

10.1 前端框架

  • 使用uni-app框架支持多端发布
  • 图表组件ak-charts或ECharts
  • 状态管理Vuex/Pinia

10.2 蓝牙通信

  • 使用uni-app的蓝牙API
  • 参考蓝牙协议文档实现数据解析
  • 实现自动重连和心跳保活

10.3 数据存储

  • 本地存储SQLite或uni-app存储API
  • 云端同步通过API上传数据
  • 数据加密:敏感健康数据加密存储

十一、紧急报警与录音功能

11.1 一键报警流程

  • 首页、实时监测页、设备状态栏均提供醒目的SOS入口。
  • 触发方式长按2秒或双击物理按钮 → 弹出确认弹窗 → 二次确认才能真正发出报警。
  • 报警后展示倒计时与可取消按钮,同时触发震动与红色动画反馈。
  • 成功发送后显示“已通知护理人员/家属”,并可查看报警编号、时间、处理状态。
  • 与协议 CMD_EMERGENCY_ALERT (0x50) 对接展示发送进度与是否收到ACK回应。

11.2 录音并发送

  • 首页快捷入口 + 消息页 “录音”按钮,点击进入录音界面。
  • 录音界面:波形动画、计时器、剩余时长指示、暂停/继续、重录功能。
  • 录音完成后提供剪辑(截取前/后3秒与备注输入上传时显示进度条。
  • 支持断点续传,上传失败提示重试或离线保存。
  • 历史录音列表按照时间排序,展示发送状态(待上传、已上传、发送失败)。
  • 对应协议 CMD_VOICE_RECORD (0x51)若包过大提示开启更高MTU或自动分包。

11.3 报警与录音历史

  • 消息中心展示专属分类卡片:报警记录、录音消息。
  • 记录包含时间、类型、处理状态、查看详情/播放录音按钮。
  • 支持重新发送报警或录音,并可添加处理备注。

十二、消息与通知中心

12.1 消息列表

  • 顶部切换:全部消息 / 报警 / 录音 / 系统通知。
  • 每条消息含图标、标题、摘要、时间、状态标签(未读、已读、失败)。
  • 支持快捷回复(预设短语)、语音回复、标记已处理。
  • 长按进入批量操作:标记已读、删除、归档。

12.2 通知推送设置

  • 配置页面可选择接收的通知类型来电、短信、App通知、健康提醒
  • 调整免打扰时段、震动强度、消息预览内容(显示全文/仅标题)。
  • 与协议 CMD_NOTIFICATION (0x30)CMD_CALL_INCOMING (0x31) 等命令保持一致。

十三、通信状态与诊断

13.1 连接状态提示

  • 顶部状态栏显示当前连接方式BLE / 2.4G / 离线。
  • 设备卡片展示信号强度、电量、最近同步时间、数据延迟指示。
  • 当连接异常时提供“重新连接”“查看教程”快捷入口。

13.2 诊断工具

  • 在设备管理页提供“诊断中心”:
    • 蓝牙日志导出最近100条命令、响应
    • 数据包实时监控CMD、SEQ、CRC是否通过
    • 健康数据自检(最近一次心率、血氧包内容是否有效)。
  • 支持上传诊断日志至客服或技术支持。

13.3 固件与协议版本管理

  • 显示当前手环协议版本、固件版本检测是否匹配APP最低要求。
  • 若协议不兼容提示升级手环或降级APP并列出差异点。

十四、与手环端的协同设计

14.1 功能联动

  • APP首页直接映射手环主界面卡片保持指标排列一致。
  • 设置页同步手环端亮度、震动、表盘、运动模式等配置。
  • 当手环切换通信模式BLE/2.4GAPP实时刷新状态并给出提示。

14.2 表盘管理

  • 表盘商店:展示经典数字、指针模拟、运动数据、信息聚合、极简艺术、动态、照片等风格。
  • 支持在线预览、下载、安装、应用、删除,显示预计安装时间和进度。
  • 可同步用户自定义表盘(上传背景、字体、配色),与协议 CMD_WATCHFACE_SET (0x73) 对接。

14.3 实时协同操作

  • 运动模式在APP中选择跑步/骑行等模式自动下发至手环,启动对应传感器采样。
  • 健康监测APP发起实时监测命令CMD_REAL_TIME_START (0x19)手环返回实时数据APP图表立即更新。
  • 紧急情况APP端可手动触发SOS与手环物理按键互为备份。

十五、设计交付与原型建议

  • 交付物高保真原型图Figma/Axure、交互动效说明、组件库按钮、图表、卡片、弹窗
  • 版本管理:按模块拆分(实时监测、历史数据、设备管理、消息中心、录音报警)。
  • 测试方案:结合蓝牙协议,编写端到端用例(设备连接、实时监测、报警、录音、通知、固件更新)。
  • 可用性测试邀请真实用户体验SOS、录音、查看睡眠数据等关键流程收集反馈迭代。

注:此设计文档基于用户需求和现有蓝牙协议规范制定,如有特殊需求可进一步调整。 看到你想把首页、实时监测、历史数据合并成一个界面,我先梳理下:先评估信息架构的可行性,再给出布局/交互建议,最后补充性能与使用体验上的注意点。

可行性分析

  • 信息密度如果屏幕空间允许例如平板、Web 或需要在手机上上下滚动),这三块内容放到同页是可行的。关键是为实时区保留足够的可视面积,并保证历史区不会喧宾夺主。
  • 操作流顺序:用户进入页面后通常先看连接状态 → 实时数据 → 再查看历史趋势,这正好是一个单页滚动的自然顺序,可以减少切页。
  • 监测时的专注度:若实时监测时需要长时间盯图或频繁互动,也可以在同页内通过折叠/全屏模式临时隐藏其他区域,既节省跳转又兼顾沉浸体验。

推荐布局

可以把页面拆成三个模块,采用单页滚动或局部 Tab

  1. 顶部状态栏/卡片展示连接状态、设备电量、通信模式等全局信息固定在顶部附带“重新连接”“SOS”等快捷入口。
  2. 实时监测区(核心可视区域):
    • 默认占屏幕大部分高度,使用 ak-chart 叠加多指标曲线。
    • 提供切换指标、时间范围、全屏查看等控件。
    • 略带溢出sticky header确保实时指示器可见。
  3. 历史数据区
    • 放在实时区下方,可折叠或以“最近一周摘要 + 查看全部”模式呈现。
    • 采用小卡片或迷你图表概览,点击再弹出/跳转到详细分析。
    • 可增加“睡眠得分”“运动总结”等关键指标,避免重复实时区的细节。

交互方式

  • 局部 Tab / 切换卡片:实时 vs. 历史用轻量 Tab 控件切换,但保持在同页渲染,减少全局导航。
  • 锚点导航:顶部提供锚点按钮(例如“实时”“历史”),帮助用户快速定位到对应区域,避免拖拽繁琐。
  • 模块折叠:允许用户根据使用场景折叠历史区或实时区,特别是在实时监控期间只保留必要信息。

性能与实现注意

  • 单页承载多段图表时要做好懒加载和可见区渲染,避免一次性绘制所有历史图造成卡顿。
  • 实时图表保持独立刷新,历史数据只在展开时加载,以降低蓝牙数据推送线程与 UI 渲染的竞争。
  • 在文档中可新增“单页仪表板模式”的说明,强调如何配置模块显示/隐藏、响应式策略、以及在 BLE 通信异常时如何保持状态一致。

总结:把这三大功能集中到同一页面是可行的,只要通过模块化布局、可折叠结构和恰当的性能优化来控制信息量与响应速度。如果你希望,我可以把这些建议直接补充到 wearable_app_ui.md 的导航或页面结构章节中。