UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

106 lines (101 loc) 3.95 kB
/* * @Author: wangyingliang@yonyou.com * @Date: 2024-07-22 15:45:20 * @LastEditors: wangyingliang wangyingliang@yonyou.com * @LastEditTime: 2024-07-23 09:19:31 * @FilePath: /mtl-api-project/src/platforms/upesn/esn.min.js * @Description: * Copyright (c) 2024 by Yonyou, All Rights Reserved. */ ; (function () { var instance; var initialized = false var util = { isObject: function (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('parameter format not correct'); } if (!parameters.nonceStr || !parameters.timeStamp || !parameters.jssdkSignature || !parameters.agentId) { throw new Error('The necessary parameters do not exist'); } parameters.fail = function (res) { alert(res.error_description || 'config api error!'); }; this.do('jsAuthority', parameters, callback); }; YYEsnBridge.prototype.registerHandler = function (parameters) { if (!util.isObject(parameters)) { throw new Error('parameter format not correct'); } 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('parameter format not correct'); } 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('parameter format not correct'); } }; if (!instance) { instance = new YYEsnBridge(); } if (typeof module !== 'undefined' && module.exports) { module.exports.YYEsnBridge = instance; } else { window.YYEsnBridge = instance; } })();