M2(容器+能力骨架+启动接线): CapabilityProvider/Registrar/AppModule + BridgeGameContainer 完整化 + Splash 接编排

T-M2-13 能力插件框架骨架:CapabilityProvider/CapabilityContext 接口、CapabilityRegistrar(批量注册+生命周期转发)、
        组装根 AppModule.buildCapabilities()(唯一知道全部能力处)、EchoSampleProvider 样板
T-M2-10 BridgeGameContainer 完整化:经 Registrar 注册能力(替换内联 handler)、首次进度 100% 推 appservice/setPostUrl、
        加载 params.entryUrl(回退 test_echo)、前后台 EventBus 联动、aboutToDisappear 全量清理;getContext→getHostContext 去弃用
SplashPage:进入即跑 StartupOrchestrator,完成 replace 进大厅、showmessage 阻断弹公告、进度条
内置测试大厅 rawfile/gamehall_builtin.zip(gamehall/index.html+data/test.json+version.xml,正斜杠标准 zip),
  作 M2 端到端 + V2(file:// XHR) 离线验证页;真实大厅由远程 zip 在生产下发

devecocli build 通过。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
lanterngamescn
2026-06-25 18:36:59 +08:00
parent d2da223c8d
commit 2b0bd1f392
8 changed files with 254 additions and 39 deletions
+20
View File
@@ -0,0 +1,20 @@
/**
* 组装根(框架 §6.2 DI)。**唯一知道"全部能力"的地方**。
*
* 桥核心、容器都不感知具体能力;新增/裁剪能力只改这里一行。
* M2:仅示例能力(验证插件模式)。M3:替换为全部真实 Provider + 占位桩
* RoomStubProvider/PayStubProvider,§6.5),契约 handler 名/数量不变。
*/
import { CapabilityProvider, EchoSampleProvider } from 'feature_capabilities';
export function buildCapabilities(): CapabilityProvider[] {
return [
new EchoSampleProvider(),
// —— M3 在此装配(顺序无关,互不依赖)——
// new ShareProvider(), new LoginProvider(), new LocationProvider(), new AudioProvider(),
// new ShakeProvider(), new DeviceProvider(), new ClipboardProvider(), new NetworkProvider(),
// new VibrateProvider(), new ScanProvider(), new CameraProvider(), new PhotoProvider(),
// new NavProvider(), new AppSystemProvider(),
// new RoomStubProvider(), new PayStubProvider(), // 暂缓能力占位桩(§6.5)
];
}