UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

88 lines (81 loc) 2.56 kB
/* * @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 };