HarmonyOSBaseLibs/src/main/ets/utils/XWebManager.ets
徐勤民 6a95d3324b feat(XWebview): 新增 JavaScript 代理功能
- 实现了在 XWebview 中使用 JavaScript代理的功能
- 添加了 JSSdkClsManager 类来处理 JS SDK 的调用
- 更新了 XWebHelper 和 XWebManager 以支持 JS 代理
- 新增了类型定义文件 types.ets来规范接口和数据结构
2025-02-17 11:55:55 +08:00

60 行
1.5 KiB
Plaintext

import { ToolsHelper } from './ToolsHelper';
export class XWebManager {
private static MapEventListener = new Map<string, (msg: string) => void>();
static objs:Map<string,object> = new Map()
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)
}
}
private static MapEventListenerToWeb = new Map<string, (msg: string) => void>();
static addOnMessageToWeb(id: string, listener: (msg: string) => void) {
XWebManager.MapEventListenerToWeb.set(id, listener)
}
static removeOnMessageToWeb(id?: string) {
if (id) {
XWebManager.MapEventListenerToWeb.delete(id)
}
}
static sendMessageToWeb(message: string) {
for (let item of XWebManager.MapEventListenerToWeb.values()) {
item(message)
}
}
}