UNPKG

mtl-js-sdk

Version:

126 lines (102 loc) 3.7 kB
"use strict"; function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } ; (function () { var instance; var initialized = false; var util = { isObject: function isObject(o) { return Object.prototype.toString.call(o) === '[object Object]'; } }; function initWebViewJavascriptBridge(callback) { if (initialized) { console.log("init has been called."); } else { window.WebViewJavascriptBridge.init(function (message, responseCallback) {}); } initialized = true; typeof callback === 'function' && callback(); } ; function YYEsnBridge() { this.version = '1.0.0'; } ; YYEsnBridge.prototype.ready = function (callback) { if (window.WebViewJavascriptBridge) { initWebViewJavascriptBridge(callback); } else { document.addEventListener('WebViewJavascriptBridgeReady', function () { initWebViewJavascriptBridge(callback); }, false); } }; YYEsnBridge.prototype.config = function (parameters, callback) { if (!util.isObject(parameters)) { throw new Error('参数格式不正确'); } if (!parameters.nonceStr || !parameters.timeStamp || !parameters.jssdkSignature || !parameters.agentId) { throw new Error('必要参数不存在'); } parameters.fail = function (res) { alert(res.error_description || 'config接口调用错误'); }; this["do"]('jsAuthority', parameters, callback); }; YYEsnBridge.prototype.registerHandler = function (parameters) { if (!util.isObject(parameters)) { throw new Error('参数格式不正确'); } for (var key in parameters) { if (Object.prototype.hasOwnProperty.call(parameters, key)) { window.WebViewJavascriptBridge.registerHandler(key, parameters[key]); } } }; YYEsnBridge.prototype["do"] = function (action, parameters) { if (action === '' || typeof action !== 'string') { throw new Error('参数格式不正确'); } if (!util.isObject(parameters)) { parameters = {}; } try { window.WebViewJavascriptBridge.callHandler(action, parameters, function (res) { var resultData = {}; try { if (!util.isObject(res)) { res = JSON.parse(res); } if (res.error_code === '0') { resultData = res.data; typeof parameters.success === 'function' && parameters.success(resultData); } else { resultData.errCode = res.error_code; resultData.errDescription = res.error_description; typeof parameters.fail === 'function' && parameters.fail(resultData); } } catch (e) { resultData.errCode = '1002'; resultData.errDescription = 'data parse error'; typeof parameters.fail === 'function' && parameters.fail(resultData); } typeof parameters.complete === 'function' && parameters.complete(resultData); }); } catch (e) { throw new Error('参数格式不正确'); } }; if (!instance) { instance = new YYEsnBridge(); } if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) { define(function () { return instance; }); } else if (typeof module !== 'undefined' && module.exports) { module.exports.YYEsnBridge = instance; } else { window.YYEsnBridge = instance; } })();