mtl-js-sdk
Version:
ynf-fw-mtl-api
106 lines (101 loc) • 3.95 kB
JavaScript
/*
* @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;
}
})();