diff --git a/docs/Development-Plan.md b/docs/Development-Plan.md index 41b71de..5abf9c2 100644 --- a/docs/Development-Plan.md +++ b/docs/Development-Plan.md @@ -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.4x(msext gameController.m:637-658 等价)— Phase 4.F -- [ ] **4.12** 远程图片分享(type=其它):`downloadRemote` → WXImageObject + thumbImage 0.4x — Phase 4.F +- [x] **4.11** 截图分享 type=2(commit 8e4c36d):captureScreenshot → JPEG 0.6 + ImageProvider.scaledThumb 0.4x → WeChatManager.shareImage(WXImageObject + 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.swift,Phase 1.15 顺带做完) +- [x] 2.3 摇一摇开关(ShakeHandler.swift + ShakeDetector) +- [x] 2.4 voicePlaying(VoicePlayingHandler.swift,全局开关由 RemoteAudioHandler 读) +- [x] 2.5 getphoneInfo(DeviceInfoHandler.swift,注意契约小写 i) +- [x] 2.6 browser(BrowserHandler.swift,UIApplication.open) +- [x] 2.7 opensaoma 空注册(OpenSaomaHandler.swift,cb-only stub 维持契约) +- [x] 2.8 DeviceInfo(DeviceInfoHandler.swift 与 2.5 合并实现) +- [x] 2.9 BatteryMonitor(Source/Resource/BatteryMonitor.swift,UIDevice batteryStateDidChange) +- [x] 2.10 NetworkMonitor(Source/Resource/NetworkMonitor.swift,NWPathMonitor) +- [x] 2.11 AppLifecycleObserver(Source/Resource/AppLifecycleObserver.swift,appservice "1"/"2") +- [x] 2.12 ShakeDetector(与 2.3 合并:UIResponder motionEnded → ShakeHandler) +- [x] 2.13 ExternalSubscriptions(WebContainerViewController + SubGameViewController 各自挂载/卸载) ### Phase 3 音频体系 - [x] 3.1 AudioPlayer(Source/Audio/AudioPlayer.swift,srcIsloop / 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 finishweb(OverlayViewController.handleMessage `.finishweb` → popOverlay nil) +- [x] 7.7 Overlay browser(OverlayViewController.handleMessage `.browser` → UIApplication.open,URL 容错带 percent encoding) ### Phase 8 视频房间 stub - [ ] 8.1 VideoRoom 协议