mtl-js-sdk
Version:
ynf-fw-mtl-api
88 lines (81 loc) • 2.56 kB
JavaScript
/*
* @Author: wangyingliang@yonyou.com
* @Date: 2024-07-22 15:45:20
* @LastEditors: wangyingliang wangyingliang@yonyou.com
* @LastEditTime: 2024-12-03 15:31:47
* @FilePath: /mtl-api-project/src/plugins/ncc/platforms/methods.js
* @Description:
* Copyright (c) 2024 by Yonyou, All Rights Reserved.
*/
import callAction from './callAction'
import { v4 as uuid } from 'uuid';
function scanQRCode(object) {
let eventItems = {};
let { type, customnavi, nocheckcode, rightItems, leftItems, centerItems } = object;
let mapper = (item) => {
if (typeof item.callback == 'function') {
const key = uuid();
eventItems[key] = item;
}
return item;
};
leftItems = leftItems && leftItems.map(mapper);
rightItems = rightItems && rightItems.map(mapper);
centerItems = centerItems && centerItems.map(mapper);
let parameters = {};
for (const key in eventItems) {
if (eventItems.hasOwnProperty(key)) {
let element = eventItems[key];
element.originCallback = element.callback;
element.callback = key;
window.WebViewJavascriptBridge.registerHandler(element.callback, function (data, responseCallback) {
console.log("callbackId: ====" + element.callback);
element.originCallback(data);
});
}
}
const callbackId = uuid();
window.WebViewJavascriptBridge.registerHandler(callbackId, function (data, responseCallback) {
console.log("callbackId: ====" + callbackId);
object.callback(JSON.parse(data).parameters);
});
const androidBackCallbackId = uuid();
window.WebViewJavascriptBridge.registerHandler(androidBackCallbackId, function (data, responseCallback) {
console.log("callbackId: ====" + callbackId);
object.androidBackCallback();
});
let data = {
function: 'scanQRCode',
parameters: {
type,
customnavi,
nocheckcode,
rightItems,
leftItems,
centerItems,
callback: callbackId,
androidBackCallback: androidBackCallbackId
}
};
window.WebViewJavascriptBridge.send(JSON.stringify(data), function (responseData) {
alert(responseData);
});
}
function navigateBack() {
var data = { function: 'closePage' };
if (WebViewJavascriptBridge) {
WebViewJavascriptBridge.send(JSON.stringify(data), function (responseData) { });
} else {
alert("YYZone uninitialized, please call again");
console.log("YYZone uninitialized, please call again");
}
}
export default {
callAction: callAction.callAction,
login: callAction.login,
uploadFile: callAction.uploadFile,
downloadFile: callAction.downloadFile,
clearLoginStorage: callAction.clearLoginStorage,
scanQRCode,
navigateBack
};