ce3fbb7106f52afdac6ed282aba08ff7acfd20a0
之前大厅 / 子游戏 observer 都 lifecycle-tied(viewWillAppear setup /
viewWillDisappear teardown),sub-game 内 overlay backgameData pop 时
只有 sub-game H5 收到 getWebdata(大厅 observer 已 teardown)。这与 msext
"NewRootVC observer 永久 + gameController observer 永久" 的双发行为不一致。
大厅 H5 可能依赖"sub-game 内 overlay 操作触发自身刷新",破坏契约。
修复:
- WebContainerViewController.subGameReturnObserver 改"永久挂钩"
- 加 subGameReturnObserverInstalled 标志,首次 setupExternalSubscriptions
时 install 一次,后续永不解绑(msext NewRootVC.m:593 等价)
- teardownExternalSubscriptions 不再触碰它
- SubGameViewController.subGameReturnObserver 保持 lifecycle-tied
- 子游戏自身 backgameData pop:sub-game 已 teardown → 仅大厅触发(单发,msext 等价)
- 子游戏内 overlay backgameData pop:sub-game.viewWillAppear 重新 setup
→ 大厅 + sub-game 双触发(双发,msext 等价)
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%