T-M4-01/02/03 GenericWebContainer(§11.3 第二套机制,不挂桥):
- javaScriptProxy 注入 settings 对象 6 方法(SettingsProxy,函数回调避开 ArkTS 对象字面量限制)
- 首次 100% runJavaScript 直调 getWebdata('<data>');返回键 isbackfinishweb→gamebackkeydown /
isexitdialogeshow→退出确认→backgameData();关闭 pop({data}) 101 语义回上层
- orientation "1"竖/其他横(window.setPreferredOrientation);browser 隐式 want
T-M3-06 NavProvider:OpenurlTitleData(开通用容器,onPop→callHandler getWebdata)、
SwitchOverGameData(同容器 loadUrl 切子游戏+重注入 app_data(launchtype'1')+方向+复位首屏标志)、
getGameinstall(同步 1/0 查 <解压根>/<dir>/index.html)、backgameData(重载大厅+待加载后 getWebdata)
导航解耦:common NavEvents(名+具名 payload interface);NavProvider 发 EventBus → BridgeGameContainer 执行
(容器持 pathStack/controller)。EventBus payload 放宽为 Object(ArkTS 禁 Record 字面量),用 GenericEventData
domain AppDataInjector.buildValues 复用(StartupOrchestrator + 子游戏切换共用,去重)
组装根装配 NavProvider
devecocli build 通过。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
17 lines
880 B
Plaintext
17 lines
880 B
Plaintext
// feature_bridge HAR —— 桥引擎层(框架 §5,100% 复刻 lzyzsd/JsBridge 协议)
|
||
|
||
// 桥核心
|
||
export { BridgeController, ResponseCallback } from './src/main/ets/core/BridgeController';
|
||
export { Message, MessageJson } from './src/main/ets/core/Message';
|
||
export { MessageCodec } from './src/main/ets/core/MessageCodec';
|
||
export { HandlerRegistry, BridgeHandler } from './src/main/ets/core/HandlerRegistry';
|
||
|
||
// Web 控制器抽象(UI 线程守卫下沉于此)
|
||
export { IWebController, WebviewControllerAdapter, FakeWebController } from './src/main/ets/web/IWebController';
|
||
|
||
// 桥 JS 读取器
|
||
export { BridgeJsLoader, BRIDGE_JS_RAWFILE } from './src/main/ets/assets/BridgeJsLoader';
|
||
|
||
// 通用网页容器注入对象(§11.3,第二套机制)
|
||
export { SettingsProxy, SettingsStrFn, SettingsFinishFn, SettingsBoolFn } from './src/main/ets/web/SettingsProxy';
|