export class Communication {
    constructor() {
        this.webViewObj = null;
        this.messageHandlers = {};
    }

    setWebView(webView) {
        this.webViewObj = webView;
    }

    sendToH5(action, data = {}) {
        if (!this.webViewObj) {
            console.error('webViewObj is not initialized');
            return;
        }

        const message = JSON.stringify({ action, data });
        // 调用 H5 端的 window.handleMessage 函数
        this.webViewObj.evalJS(`window.handleMessage(${JSON.stringify(message)})`);
    }

    registerHandler(action, handler) {
        this.messageHandlers[action] = handler;
    }
    handleMessage(message) {
        const { action, data = {} } = message
        if (this.messageHandlers[action]) {
            this.messageHandlers[action](data);
        } else {
            console.warn('Unknown action:', action);
        }
    }
}