; (function (window) { ; var WKJSBridge = /** @class */ (function () { function WKJSBridge() { this.uniqueId = 1; this.callbackCache = {}; this.eventCallbackCache = {}; } /** * è°ç¨ Natvie æ¹æ³ * @param service 模å * @param action æ¹æ³ * @param actionArgs æ°æ® * @param callback è°ç¨åè° */ WKJSBridge.prototype.callNative = function (service, action, actionArgs, successCallback, failCallback) { var message = { service: service || 'default', action: action, actionArgs: actionArgs, callbackId: null }; if (successCallback || failCallback) { // æ¼è£ callbackId var callbackId = 'cb_' + message.service + '_' + action + '_' + (this.uniqueId++) + '_' + new Date().getTime(); // ç¼å callbackï¼ç¨äºå¨ Native å¤ç宿¶æ¯åï¼éç¥ H5 this.callbackCache[callbackId] = {success:successCallback, fail:failCallback};; // 追å callbackId 屿§ message.callbackId = callbackId; } // åéæ¶æ¯ç» Native window.webkit.messageHandlers.WKJSBridgeMessageName.postMessage(JSON.stringify(message)); }; /** * ç¨äºå¤çæ¥èª Native çæ¶æ¯ * @param callbackMessage åè°æ¶æ¯ */ WKJSBridge.prototype._handleMessageFromNative = function (messageString) { var callbackMessage = JSON.parse(messageString); var status = messageString.status; var callback = this.callbackCache[callbackMessage.callbackId]; if (callback) { // æ§è¡ callback åè°ï¼å¹¶å é¤ç¼åç callback if (status = '0') {//失败åè° callback.fail(callbackMessage.data); }else {//æååè° callback.success(callbackMessage.data); } this.callbackCache[callbackMessage.callbackId] = null; delete this.callbackCache[callbackMessage.callbackId]; } }; return WKJSBridge; }()); // åå§å KKJSBridge window.WKJSBridge = new WKJSBridge(); // 设置æ°ç JSBridge ä½ä¸ºå ¨å±å¯¹è±¡ })(window);