mtl-js-sdk
Version:
86 lines (70 loc) • 2.44 kB
JavaScript
;
define([], function () {
var callbackData = {};
var FAIL_CODE = 1;
var unsupportFailRes = {
code: FAIL_CODE,
message: "当前平台不支持"
};
function unsupportMethod() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
object.fail && object.fail(unsupportFailRes);
object.complete && object.complete(unsupportFailRes);
}
var unsupportMethods = ["relayoutCustomWebview"];
function customScanQRCode(obj) {
mtlBridge.call("barcode.startBarcodeService", JSON.stringify(obj), obj.registerCallback);
}
function startBarcodeService(obj) {
mtlBridge.call("barcode.startBarcodeService", JSON.stringify(obj), obj.callback);
}
function stopBarcodeService(obj) {
mtlBridge.call("barcode.stopBarcodeService", JSON.stringify(obj), obj.callback);
}
function startBarcodeScan(obj) {
mtlBridge.call("barcode.startBarcodeScan", JSON.stringify(obj), obj.callback);
}
function stopBarcodeScan(obj) {
mtlBridge.call("barcode.stopBarcodeScan", JSON.stringify(obj), obj.callback);
}
function controlBarcodeScan(obj) {
mtlBridge.call("barcode.controlBarcodeScan", JSON.stringify(obj), obj.callback);
}
function registerCallback(obj) {
var mtlRegisterCallbackName = obj.mtlRegisterCallbackName,
registerCallback = obj.registerCallback;
callbackData[mtlRegisterCallbackName] = function (data, callback) {
if (data !== null && data !== "{}") {
registerCallback(data, callback);
} else {
registerCallback("", callback);
}
};
}
window.mtl_registerCallback = function (result) {
window.mtl_handleCallback(result);
var callbackName = result.callbackName,
code = result.code,
data = result.data;
var registerCallback = callbackData[callbackName];
if (code == 0) {
registerCallback && registerCallback(data);
}
setTimeout(function () {
delete callbackData[callbackName];
}, 2000);
};
var exports = {
customScanQRCode: customScanQRCode,
startBarcodeService: startBarcodeService,
stopBarcodeService: stopBarcodeService,
startBarcodeScan: startBarcodeScan,
stopBarcodeScan: stopBarcodeScan,
controlBarcodeScan: controlBarcodeScan,
registerCallback: registerCallback
};
unsupportMethods.forEach(function (pop) {
exports[pop] = unsupportMethod;
});
return exports;
});