Plan §8 进度补漏:Phase 2 / 4.11-4.12 / 7.6-7.7 全勾

Phase 2 大厅简单 handler 实际在 Phase 1 / 4.B 顺带都已落地(13 个文件全
存在于 Source/Bridge/Handlers/ + Source/Resource/),只是 §8 进度表
长期未同步。一次性补勾,并附实际实现文件路径方便检索。

Phase 4.11 / 4.12(截图 / 远端图分享)由 commit 8e4c36d 落地,§5 已勾,
§8 这里也勾上。

Phase 7.6 finishweb / 7.7 browser overlay 实际在 OverlayViewController
首版(commit 0427bb9)就已实现 handleMessage 三分支,与 7.5 同时落地,
但 §8 当时只勾了 7.1-7.5,遗漏 7.6/7.7。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
joywayer
2026-06-23 01:59:01 +08:00
co-authored by Claude Opus 4.7
parent 8e4c36d1c8
commit 8fc37b0827
+17 -17
View File
@@ -525,8 +525,8 @@ Contract Design Plan(本文档)
- [x] **4.8** `Source/Share/SharePlatform.swift` 协议 + `WechatShare` / `QQShare` / `DouyinShare`(闲聊不接,参 ADR-006
- [x] **4.9** `Source/Share/ShareCenter.swift`sharefriend=1 弹 SharePanel=2 直接微信朋友圈(msext gameController.m:585 等价)
- [x] **4.10** `FriendsShareHandler.swift` → ShareCenter.dispatch → 反向 callback `sharesuccess({success:"2", type:<原 sharefriend>})`
- [ ] **4.11** 截图分享type=2):`captureScreenshot`WXImageObject + thumbImage 0.4xmsext gameController.m:637-658 等价)— Phase 4.F
- [ ] **4.12** 远程图片分享type=其它):`downloadRemote`WXImageObject + thumbImage 0.4x — Phase 4.F
- [x] **4.11** 截图分享 type=2commit 8e4c36d):captureScreenshot → JPEG 0.6 + ImageProvider.scaledThumb 0.4x → WeChatManager.shareImageWXImageObject + setThumbImage
- [x] **4.12** 远程图片分享 type=其它commit 8e4c36d):downloadRemote → JPEG 0.9 + scaledThumb 0.4x → shareImage 同一路径
#### 验收
@@ -897,19 +897,19 @@ H5 调 `OpenurlTitleData` 打开弹层 WebView,弹层内 H5 用 `window.settin
- [ ] 1.17 Demo H5 联调 + 真机验证升级路径
### Phase 2 大厅简单 handler + 反向 callback
- [ ] 2.1 剪贴板
- [ ] 2.2 振动扩展
- [ ] 2.3 摇一摇开关
- [ ] 2.4 voicePlaying
- [ ] 2.5 getphoneInfo
- [ ] 2.6 browser
- [ ] 2.7 opensaoma 空注册
- [ ] 2.8 DeviceInfo
- [ ] 2.9 BatteryMonitor
- [ ] 2.10 NetworkMonitor
- [ ] 2.11 AppLifecycleObserver
- [ ] 2.12 ShakeDetector
- [ ] 2.13 ExternalSubscriptions
- [x] 2.1 剪贴板ClipboardHandler.swift
- [x] 2.2 振动扩展VibratorHandler.swiftPhase 1.15 顺带做完)
- [x] 2.3 摇一摇开关ShakeHandler.swift + ShakeDetector
- [x] 2.4 voicePlayingVoicePlayingHandler.swift,全局开关由 RemoteAudioHandler 读)
- [x] 2.5 getphoneInfoDeviceInfoHandler.swift,注意契约小写 i
- [x] 2.6 browserBrowserHandler.swiftUIApplication.open
- [x] 2.7 opensaoma 空注册OpenSaomaHandler.swiftcb-only stub 维持契约)
- [x] 2.8 DeviceInfoDeviceInfoHandler.swift 与 2.5 合并实现)
- [x] 2.9 BatteryMonitorSource/Resource/BatteryMonitor.swiftUIDevice batteryStateDidChange
- [x] 2.10 NetworkMonitorSource/Resource/NetworkMonitor.swiftNWPathMonitor
- [x] 2.11 AppLifecycleObserverSource/Resource/AppLifecycleObserver.swiftappservice "1"/"2"
- [x] 2.12 ShakeDetector(与 2.3 合并:UIResponder motionEnded → ShakeHandler
- [x] 2.13 ExternalSubscriptionsWebContainerViewController + SubGameViewController 各自挂载/卸载)
### Phase 3 音频体系
- [x] 3.1 AudioPlayerSource/Audio/AudioPlayer.swiftsrcIsloop / stopBackground / volume 全路径)
@@ -959,8 +959,8 @@ H5 调 `OpenurlTitleData` 打开弹层 WebView,弹层内 H5 用 `window.settin
- [x] 7.4 OpenurlTitleData handler"title " 末尾空格 + 3s 节流由 Coordinator 守门)
- [x] 7.5 Overlay backgameData(→ popOverlay 发 .subGameDidReturn → 父层 getWebdata
- [x] 额外 SubGameViewController 也订阅 .subGameDidReturn(覆盖 overlay→sub-game 返回)
- [ ] 7.6 Overlay finishweb
- [ ] 7.7 Overlay browser
- [x] 7.6 Overlay finishwebOverlayViewController.handleMessage `.finishweb` → popOverlay nil
- [x] 7.7 Overlay browserOverlayViewController.handleMessage `.browser` → UIApplication.openURL 容错带 percent encoding
### Phase 8 视频房间 stub
- [ ] 8.1 VideoRoom 协议