import { ToolsHelper } from './ToolsHelper'; export class XWebManager { private static closeCall?: () => void; static onGetUrl: () => string; static onGetTitle: () => string; static onRefresh: () => void; static onClose(call: () => void) { XWebManager.closeCall = call } static close() { XWebManager.closeCall && XWebManager.closeCall() } static getUrl() { return XWebManager.onGetUrl() } static getTitle() { return XWebManager.onGetTitle() } static refresh() { XWebManager.onRefresh() } private static MapEventListener = new Map void>(); static objs: Map = 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) } } static menuClick: () => void private static MapEventListenerToHtml = new Map 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 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) } } }