Files
lanterngamescn 98854f7312 M4: 通用网页容器 + SettingsProxy + NavProvider + 子游戏切换
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>
2026-06-25 20:58:10 +08:00

17 lines
880 B
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// feature_bridge HAR —— 桥引擎层(框架 §5100% 复刻 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';