修复一些列bug

This commit is contained in:
2026-08-01 21:44:59 +08:00
parent cc3f273872
commit 562ba8e603
26 changed files with 1181 additions and 1 deletions

View File

@@ -4,7 +4,7 @@
在已确认的产品、技术与设计基线上,交付可运行的景区排队叫号系统纵向切片,并以自动化测试验证多项目隔离、幂等叫号与隐私边界。
## Current Phase
Phase 47单项目公示屏排版修复
Phase 49Android 公示屏 APK
## Phases
@@ -632,3 +632,40 @@ Phase 47单项目公示屏排版修复
| 视觉基准 | 以用户截图和仓库内 `ProjectScreenTile` 全屏态为准 | 截图对应现有管理端项目卡全屏结构,可保持两个入口一致 |
| 改动边界 | 只复用展示组件与公开统计字段,不改轮询和语音播报 | 降低视觉重做对实时叫号行为的回归风险 |
| 适配策略 | 独立路由使用全屏样式修饰类,管理端预览仍保持缩略卡片 | `/display/YYHHC` 无需点击全屏即可获得参考布局 |
### Phase 49: Android 公示屏 APK2026-08-01
- [x] 核对项目列表页、单项目展示页及两者导航契约
- [x] 确认本机 Android 构建工具并确定最小壳应用方案
- [x] 实现仅承载公开公示页面的沉浸式 WebView 应用
- [x] 覆盖返回导航、外链隔离、音频自动播放、常亮与错误恢复
- [x] 构建可安装 APK 并完成静态、单元与构建验证
- **Status:** complete
#### Initial Decisions
| Decision | Result | Why it matters |
|---|---|---|
| 页面范围 | 默认打开公开项目列表,只允许应用内进入同域项目展示页 | 对齐“项目列表 + 具体项目展示”两页需求,避免把后台或任意网页装进壳内 |
| 实现方向 | 使用原生 Android WebView 薄壳,不复制现有 React 页面 | 页面数据和样式继续由线上系统统一维护APK 只解除浏览器地址栏、休眠和媒体播放等现场约束 |
| 构建基线 | AGP 9.2.0、Gradle 9.4.1、compileSdk 36、minSdk 23、Java 17 字节码 | 与本机 JDK 21、Android 36 平台和 Build Tools 36.1.0 对齐,同时覆盖常见 Android 6+ 设备 |
#### Verification Evidence
| Check | Result |
|---|---|
| 干净构建 | `clean testDebugUnitTest lintDebug assembleDebug` 通过 |
| Android Lint | 0 errors3 个已知工具链版本提示 |
| APK 包信息 | `cn.nianxx.queue.display` / `1.0.0` / minSdk 23 / targetSdk 36 / 仅 INTERNET 权限 |
| APK 签名 | v1、v2 校验通过Android Debug 证书 |
| 交付校验 | SHA-256 `5504D25C1FDB1310FF85DADCB779BA5C07F48706514B23F8265B492CE21CAB30` |
| 设备验收 | 本机 `adb devices` 无设备;未执行真机/模拟器交互验收 |
#### Errors Encountered
| Error | Attempt | Resolution |
|---|---:|---|
| `planning-with-files-zh` 会话恢复脚本找不到本机 `python` 命令 | 1 | 不重复执行;直接读取三份现有台账并核对 Git 状态恢复上下文 |
| 并行环境探测以无匹配的 `rg` 结束,导致整组工具调用返回失败 | 1 | 后续把源码与环境探测拆开,并让只读探测显式正常退出 |
| 普通网页读取器因域名安全校验拒绝两个线上页面 | 1 | 不绕过校验;改用只读应用内浏览器核对实际页面 |
| 应用内浏览器打开线上项目列表时资源加载超时并重置连接 | 2 | 已按故障指引有界重试;详情页可用但列表仍超时,停止重试并以仓库源码与既有页面验收记录为准 |
| 更新台账时同一文件的补丁片段顺序与文件顺序相反,校验失败 | 1 | 按文件中的实际先后顺序重新排列补丁片段,未产生部分修改 |
| 更新台账的补丁在切换文件前残留空 hunk 标记,语法校验失败 | 1 | 删除多余 hunk 标记后重新应用,未产生部分修改 |
| 首次 Android 编译把 `PermissionRequest` 误从 `android.view` 导入 | 1 | 改为正确的 `android.webkit.PermissionRequest`;同时删除 AGP 9.2 已弃用的 `android.useAndroidX=false` 配置 |
| 首次 Lint 报告 2 个错误、8 个警告,其中返回键实现不覆盖 Android 16 预测性返回 | 1 | 读取完整报告,迁移到平台 `OnBackInvokedDispatcher` 并逐项关闭其余问题,不建立 Lint 基线掩盖错误 |