UNPKG

wnjk

Version:

两只蜗牛通用微服务脚本

63 lines (62 loc) 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class JsBridge { static appFunction(functionName, params) { let windowObj = window; if (!windowObj.native) { windowObj.native = {}; } if (params == undefined) { windowObj.native[functionName](); } else { windowObj.native[functionName](params); } } static injectExec(functionName, params) { let windowObj = window; if (!windowObj.native) { windowObj.native = {}; } if (typeof params == 'function') { let callbackName = `${functionName}_APPinjection_callback`; windowObj.native[callbackName] = params; params = callbackName; } else if (typeof params == 'object') { for (let key in params) { let val = params[key]; if (typeof val == 'function') { let callbackName = `${functionName}_APPinjection_${key}`; windowObj.native[callbackName] = params[key]; params[key] = callbackName; } } params = JSON.stringify(params); } JsBridge.appFunction(functionName, params); } static injectListen(functionName, callback) { let windowObj = window; if (!windowObj.native) { windowObj.native = {}; } functionName = functionName.split('.'); if (functionName.length > 1) { var string; var last_key = functionName[functionName.length - 1]; for (var i = functionName.length; i--; i >= 0) { string = '"' + functionName[i] + '"' + ':' + (string ? '{' + string + '}' : '1'); } windowObj.native[functionName] = JSON.parse('{' + string + '}', function (k, v) { if (last_key == k) v = callback; return v; }); } else { windowObj.native[functionName] = callback; } } } exports.default = JsBridge;