mtl-js-sdk
Version:
93 lines (76 loc) • 3.56 kB
JavaScript
;
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
define(['../../../../platforms/wx/wx.proxy'], function (proxy) {
var callbackData = {};
var FAIL_CODE = 1;
var generateFunc = proxy.generateFunc;
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 = ["stopBarcodeService", "startBarcodeScan", "stopBarcodeScan", "controlBarcodeScan", "relayoutCustomWebview"];
function customScanQRCode(object) {
var callback = object.callback;
object['needResult'] = 1;
var name = 'scanQRCode';
var fn = generateFunc(name);
var originFn = fn;
var originSuccess = object.success;
var originComplete = object.complete;
var success = originSuccess && function (result) {
var resultStr = result.resultStr;
resultStr = resultStr && resultStr.split(",").pop();
originSuccess({
resultStr: resultStr
}); // 回调事件
var callbackSuccess = callbackData[callback];
callbackSuccess && callbackSuccess({
resultStr: resultStr
}); // 接收到后删除
setTimeout(function () {
delete callbackData[callback];
}, 2000);
};
var complete = originComplete && function (result) {
if (result.code === SUCCESS_CODE) {
var resultStr = result.data.resultStr;
resultStr = resultStr && resultStr.split(",").pop();
result.data = {
resultStr: resultStr
};
}
originComplete(result);
};
originFn(_objectSpread({}, object, {
success: success,
complete: complete
}));
}
function registerCallback() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var mtlRegisterCallbackName = object.mtlRegisterCallbackName,
registerCallback = object.registerCallback;
callbackData[mtlRegisterCallbackName] = function (data, callback) {
if (data !== null && data !== "{}") {
registerCallback(data, callback);
} else {
registerCallback("", callback);
}
};
}
var exports = {
customScanQRCode: customScanQRCode,
registerCallback: registerCallback
};
unsupportMethods.forEach(function (pop) {
exports[pop] = unsupportMethod;
});
return exports;
});