joywayerandClaude Opus 4.7 82bad8a85d Design §3.4.1:补 window.settings 同步 getter polyfill(9 项含 getothername)
audit 第二轮发现:Contract §附录 A 旧桥 JSExport 共 28 方法,与 §3.1
异步主桥去重后多出 9 项 H5 同步只读 getter。前一轮 audit 只覆盖 §3.1
主表的 22 项异步 handler,这 9 项 getter 在 Design 完全无覆盖:

  - getchannelName / getmarketname / getOther / getothername(name)
  - getcompareCode / getbattery / getnetwork
  - getGameinstall(name) / getGameplay(jsondata)

这些接口 H5 端形式是同步表达式(var ch = window.settings.getchannelName()),
WKWebView 无法同步返回 JS 值。唯一不破契约(H5 端零修改)的路径:
documentStart 注入数据快照 + 纯 JS getter polyfill,本地查询零延迟。

§3.4.1 新增覆盖:
  - 9 项 getter 业务语义 + 数据源映射表(驳到 BundleConfig / DeviceKit /
    SandboxPaths.installedSubGames)
  - 数据快照时机:静态字段(11 项渠道注入)启动期一次;动态字段
    (battery / network / installedGames)每次 loadFileURL 前重新快照
  - SettingsBridgePolyfill.makeUserScript 完整 JS 注入骨架
  - WebContainerViewController 接入点(runBootPipelineSteps 末尾、
    loadFileURL 前调 installSettingsPolyfill)
  - 与原 msext JSExport 5 维度差异表

待 Phase 2 实施时查清:getcompareCode 在 msext RootVC.m:1560 附近的真实
返回值语义(业务校验码,可能与 zip 版本号或固定值相关)。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-22 07:24:01 +08:00
S
Description
No description provided
24 MiB
Languages
Swift 94.5%
Objective-C++ 2.9%
JavaScript 1.8%
C 0.6%
Objective-C 0.2%