- 实现了在 XWebview 中使用 JavaScript代理的功能 - 添加了 JSSdkClsManager 类来处理 JS SDK 的调用 - 更新了 XWebHelper 和 XWebManager 以支持 JS 代理 - 新增了类型定义文件 types.ets来规范接口和数据结构
60 行
1.5 KiB
Plaintext
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)
|
|
}
|
|
}
|
|
} |