UNPKG

mtl-js-sdk

Version:

91 lines (81 loc) 2.79 kB
"use strict"; define(['./callAction', 'uuid'], function (callAction, uuid) { function scanQRCode(object) { var eventItems = {}; var type = object.type, customnavi = object.customnavi, nocheckcode = object.nocheckcode, rightItems = object.rightItems, leftItems = object.leftItems, centerItems = object.centerItems; var mapper = function mapper(item) { if (typeof item.callback == 'function') { var key = uuid(); eventItems[key] = item; } return item; }; leftItems = leftItems && leftItems.map(mapper); rightItems = rightItems && rightItems.map(mapper); centerItems = centerItems && centerItems.map(mapper); var parameters = {}; for (var key in eventItems) { if (eventItems.hasOwnProperty(key)) { (function () { var 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); }); })(); } } var callbackId = uuid(); window.WebViewJavascriptBridge.registerHandler(callbackId, function (data, responseCallback) { console.log("扫码回调callbackId:====" + callbackId); object.callback(JSON.parse(data).parameters); }); var androidBackCallbackId = uuid(); window.WebViewJavascriptBridge.registerHandler(androidBackCallbackId, function (data, responseCallback) { console.log("返回键callbackId:====" + callbackId); object.androidBackCallback(); }); var data = { "function": 'scanQRCode', parameters: { type: type, customnavi: customnavi, nocheckcode: nocheckcode, rightItems: rightItems, leftItems: leftItems, centerItems: 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("友空间未初始化完成,请重新调用"); } } return { callAction: callAction.callAction, login: callAction.login, uploadFile: callAction.uploadFile, downloadFile: callAction.downloadFile, clearLoginStorage: callAction.clearLoginStorage, scanQRCode: scanQRCode, navigateBack: navigateBack }; });