跳转至

0.11 手机胶囊与返回导航修复

历史记录 / Historical record:本文保留当时的计划、研究或验收证据,不代表 0.11 当前能力全集。现行说明见 文档入口;英文入口见 English overview。

用户要求先暂停 APK 构建,修正手机 OH 占位居中和 Android 返回直接退出问题。

设计与根因

  • 版本统一为 0.11.0,关于页去掉 beta;版本提交 f4615273。暂停的新包没有交付。
  • OH 常态左侧平衡槽在没有收藏星标时仍占位,且 OneGUI workbench 配方强制靠左。手机修正在统一配方中:取消空槽、提示组居中,右侧星标/未读徽标用对称空间避让,窄屏允许提示省略。输入与收音状态保留原交互。
  • Explorer 替代旧页面路由后,没有把页面变化接入 navStack。旧栈只剩部分 overlay 消费者,既没有页面历史,根节点也未必安装 Android onBackButtonPress 监听。
  • 复用既有 Tauri AppPlugin 返回键 Channel 与 mobile_exit,不依赖 WebView canGoBack、pushState 或伪装 UA。注册增加并发门闩,避免首帧多个浮层或 StrictMode 重放导致重复监听。

返回规则

  1. 先关闭最近打开的 overlay(设置、OH、标签、OneGO、命令面板、看图及已有表单/预览等)。
  2. 再恢复当前模式的上一导航位置,保留课程/作业参数和标签身份,不删除标签,不复活已关闭标签。
  3. 三种模式分别维护有界的会话历史,保留首页根。恢复到非首页的冷启动入口也可返回首页。
  4. 仅首页且无浮层可退时交给既有 mobile_exit。

看图原来的同 URL 历史改为统一 overlay 登记,以免返回键已经被 Tauri 监听后看图无法关闭。

验证

运行 tools/mobile-shell-back-browser-test.mjs 覆盖 320/390/430 三档、三种模式及页面/浮层返回;既有 nav-stack/mobile-nav、类型检查、CSS 结构和 OneGUI 守卫继续核验。浏览器可验证真实应用状态与返回回调,无法代替 Android 真机手势/三键验收。用户未要求恢复构建前不再生成 APK。

验收结果

  • 手机真实应用浏览器验收 118 项通过,覆盖三种视口 × 三种模式、课程页参数、已关闭标签、模式切换隔离,以及使用 API 适配器模拟 Android 返回回调(仅根节点调用 mobile_exit;监听只注册一次)。
  • 已看 390 宽手机截图,常态 OH 标志与占位提示组居中;图片位于外置构建盘 /Volumes/OneTHUBuild/artifacts/mobile-shell-review/。
  • 导航栈单测 15 项、Android 退出契约 4 项、导览导航 21 项、桌面类型检查、CSS、OneGUI、7343 条中英文词典检查通过。
  • 初次进入生活/预约会自动回写默认子栏目。此类 null 参数到默认参数的变化合并当前历史项,避免多一次无效返回。
  • 尚未连接 Android 真机;不声称手势、三键已做物理设备验收。没有恢复 APK 构建。