mtl-js-sdk
Version:
91 lines (81 loc) • 2.79 kB
JavaScript
;
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
};
});