中优 3 项收尾:Plan §6.4 里程碑 + Design §20.1 拆分 + Contract §10 验收清单
补完本轮 audit 与 Design 大改后的文档边界,避免后续 Phase 实施者
按陈旧描述走弯路。
1. Plan §6.4 文档同步段新增「Design 接口骨架覆盖里程碑」表:
- 4 行时间线记录 Phase 1 闭环 / Design 全 51 项接口骨架 / Contract §4.2
按 daoqi 原项目修订 / CLAUDE.md 加典型案例的 commit hash
- 末尾澄清「§3.4.1 撤销说明」与 §7.5 主路径关系,避免新人疑惑
2. Design §20.1 LobbyHandlers 加架构说明段:
- 明示实际拆为 AudioHandlers / DeviceHandlers / LocationHandlers /
ShakeHandlers / OpenurlTitleDataHandler 5 个 sub-struct(§8.1.1 /
§8.4.1 / §8.6 / §8.7 / §3.4.2 各自归属)
- LobbyHandlers 成为聚合点,依次调子 .register()
- 保留 monolithic register 速查表作为与 Contract §3.1 编号对账用
- 每行注释 §3.1 [N] 编号便于追溯
3. Contract §10 验收清单加 5 项硬约束:
§A 启动新增:
- app_*.js 4 个文件存在
- 15 个 app_* 全局变量命名 100% 正确(大小写硬约束)
- 大厅 vs 子游戏 app_Launchtype = "0"/"1" 字面差异
- app_gameid / app_compareCode 必须 undefined(早期 Contract 误列)
§B 桥接新增:
- H5 alert(msg) → UIAlertController 单按钮
- H5 confirm(msg) → 取消/确定 双按钮 + 正确返回 bool
至此 Plan / Design / Contract 三文档完全对齐 51 项接口(含 §7.5 app_*.js
15 个、§3.7 WKUIDelegate 2 个)。Phase 2 实施可直接对照 Contract §10
验收清单做契约测试。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
fae7b3da82
commit
0cdd709e66
@@ -979,6 +979,10 @@ Library/Caches/
|
||||
- [ ] 重装 + 热启动:< 1 秒进入大厅
|
||||
- [ ] 渠道注入:把 `msext/channel/xxx` 目录名改成 `yyy`,重打包后大厅显示的渠道 ID 变为 `yyy`
|
||||
- [ ] iOS 18 / 19 / 26 上启动不卡死
|
||||
- [ ] **`app_*.js` 4 个文件存在**:`{gamedir}/{gamestart}/` 下 `app_data.js` / `app_battery.js` / `app_network.js` / `app_gamesname.js` 全部生成、loadFileURL 前已落盘
|
||||
- [ ] **`app_*` 12 + 1 + 1 + 1 = 15 个全局变量命名 100% 正确**(参 §4.2):H5 console 检查 `app_version` / `app_gameconfig` / `app_gamedir` / `app_gamestart` / `app_agent` / `app_appversion` / `app_market` / `app_channel` / `app_Launchtype` / `app_getwifisignalLevel` / `app_gamename` / `app_invitationcode` / `app_getbattery` / `app_getnetwork` / `app_gamesname` 全部 `!== undefined`;尤其大小写 `app_Launchtype`(L 大写)/ `app_getwifisignalLevel`(wifi 小写 + signal/Level 区分)/ `app_getbattery`、`app_getnetwork`(带 get 前缀)必须精确
|
||||
- [ ] **大厅 vs 子游戏字面差异**:大厅 H5 内 `app_Launchtype === "0"`、子游戏 H5 内 `app_Launchtype === "1"`
|
||||
- [ ] **不要存在已撤销的变量**:H5 console 检查 `app_gameid` / `app_compareCode` 应为 `undefined`(早期 Contract §4.2 误列,原项目代码字面字符串里不写)
|
||||
|
||||
### B. 桥接
|
||||
- [ ] H5 调 `accreditlogin` → 微信弹授权页 → 同意后 H5 收到 `sharelogin` 回调,7 字段完整
|
||||
@@ -993,6 +997,8 @@ Library/Caches/
|
||||
- [ ] H5 调 `OpenurlTitleData`(大厅 WVJB)→ 打开内嵌弹层;弹层内 H5 调 `settings.finishweb()`(弹层 JSExport)关闭,且弹层内 `settings.backgameData(data)` 能把 data 传回大厅,大厅 H5 收到 `getWebdata`
|
||||
- [ ] H5 调 `browser` → Safari 打开外链
|
||||
- [ ] H5 调 `SwitchOverGameData` → push 到子游戏;子游戏内调 `backgameData` → 回到大厅;H5 收到 `getWebdata`
|
||||
- [ ] **H5 调 `alert("登录失败")`** → 弹出原生 UIAlertController,标题 = appDisplayName,单"确定"按钮(不实现 WKUIDelegate 则 H5 提示完全不弹)
|
||||
- [ ] **H5 调 `confirm("是否退出")`** → 弹"取消"/"确定"两按钮 → 取消返回 false / 确定返回 true,H5 业务正常分支
|
||||
|
||||
### C. 系统事件
|
||||
- [ ] 切后台 → H5 收到 `appservice("1")`;回前台 → 收到 `appservice("2")`
|
||||
|
||||
Reference in New Issue
Block a user