HarmonyOSBaseLibs/src/main/ets/utils/XWebManager.ets
徐勤民 fbca6847f1 feat(基础组件): 新增 XWebview 消息交互功能- 新增 XWebController 接口和 XWebManager 类
- 实现了 XWebview 和原生代码之间的消息通信机制
- 更新了 MiniAppManager 中的 XWebHelper 使用新的消息通信功能- 优化了 XWebview组件,支持消息端口通信
2024-11-22 17:35:12 +08:00

41 行
1.0 KiB
Plaintext

import { ToolsHelper } from './ToolsHelper';
export class XWebManager {
private static MapEventListener = new Map<string, (msg: string) => void>();
static addOnMessage(listener: (msg: string) => void): string {
const id = ToolsHelper.getUuid()
XWebManager.MapEventListener.set(id, listener)
return id
}
static removeOnMessage(id?: string) {
if (id) {
XWebManager.MapEventListener.delete(id)
}
}
static sendMessage(message: string) {
for (let item of XWebManager.MapEventListener.values()) {
item(message)
}
}
private static MapEventListenerToHtml = new Map<string, (msg: string) => void>();
static addOnMessageToHtml(id: string, listener: (msg: string) => void) {
XWebManager.MapEventListenerToHtml.set(id, listener)
}
static removeOnMessageToHtml(id?: string) {
if (id) {
XWebManager.MapEventListenerToHtml.delete(id)
}
}
static sendMessageToHtml(message: string) {
for (let item of XWebManager.MapEventListenerToHtml.values()) {
item(message)
}
}
}