100% 复刻 lzyzsd/JsBridge(对照原 Android com.tagmae.jsbridge 逐字): - IWebController + WebviewControllerAdapter(emitter UI 线程守卫,§5.5) + FakeWebController(单测用) - Message(5字段,undefined省略) + MessageCodec(toJson/toArray + dispatchMessage 两次正则转义逐字复刻) - HandlerRegistry + 空实现 DefaultHandler 兜底(H5 调用永不报错最后防线) - BridgeController:onLoadIntercept(decode→yy://return/yy://)/callHandler/send/onPageEnd/ flushMessageQueue(_fetchQueue 经 yy://return 回传,非 runJavaScript 返回值)/handleReturnData/ 启动队列补发;对能力零感知、纯逻辑可测 - build 编译通过(ArkTS 严格) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
14 lines
700 B
Plaintext
14 lines
700 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';
|