f68b0dba939020967bb9f4db79e24a3afa346d9e
按 CLAUDE.md「先看原项目」规则深度审查 daoqi/msext NewRootVC.initJSdata /
gameController.initJSdata / AppDelegate 写入逻辑后发现:
**关键纠正**:H5 在 iOS 9+ 路径下的真实读值机制是 §4.2「写 app_*.js 文件
+ H5 <script src> 同步引入」,不是早期 commit 82bad8a 实现的
§3.4.1 window.settings.getXxx() polyfill(那是 §附录 A 旧桥 JSExport
路径,契约明示「新外壳如最低系统 ≥ iOS 14 可不实现」,本项目最低
iOS 15.6 → 无需实现)。
§3.4.1 处理:标题改为「⚠️ 撤销」+ 完整说明撤销原因;旧 polyfill 代码
骨架保留为 §3.4.1.legacy 作为数据源映射参考(不删除以保 git log 整洁,
也方便 Phase 2 实施者了解 9 项 getter 的等价数据来源)。
§7.5 新章节覆盖 15 个变量(用户列 14 + audit 发现 app_invitationcode):
- §7.5.1 完整映射表:变量名 / 大厅值 / 子游戏值 / 数据源 / 文件
- §7.5.2 4 个文件写入时机(一次性 vs 事件驱动)+ 为什么写文件不
evaluateJavaScript(保证 <script src> 同步引入时机)
- §7.5.3 AppDataWriter struct Swift 骨架(escape 4 种特殊字符避免
渠道字段含引号导致 H5 JS 解析错)
- §7.5.4 WebContainerViewController 接入点:loadFileURL 前 writeInitial
+ writeBattery + writeNetwork;持续监听 batteryLevelDidChange /
NWPathMonitor 触发增量重写
- §7.5.5 大厅 / 子游戏 / 弹层 4 维度差异(弹层不写 app_*)
- §7.5.6 与 msext 6 维度差异表(单一真相 / 转义 / 大小写严格)
- §7.5.7 §7.5 vs §3.4.1 vs §3.4 OverlayBridge vs §3.2 callback 四条
路径关系澄清
大小写严格契约:app_Launchtype(L 大写)/ app_getwifisignalLevel(wifi
小写、signal/Level 区分大小写)— 任何拼写错误会让 H5 业务读到 undefined。
至此 H5 端 JS 与原生通讯的完整 5 条路径全部覆盖:
1. WebViewJavascriptBridge 异步 callback(§5/§8/§3.1,22 项 handler)
2. Native→H5 反向 callback(§3.2,15 项)
3. app_*.js 文件预注入全局变量(§7.5,15 项)
4. 弹层 window.settings 同步 polyfill(§3.4,3 项 + §3.4.2 OpenurlTitleData)
5. WKUIDelegate alert / confirm(§3.7,2 项)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
No description provided
24 MiB
Languages
Swift
94.5%
Objective-C++
2.9%
JavaScript
1.8%
C
0.6%
Objective-C
0.2%