mtl-js-sdk
Version:
ynf-fw-mtl-api
76 lines (74 loc) • 2.69 kB
JavaScript
;
function Plugin(options, exports = {}) {
const { platform } = options || { platform: window.mtl.platform };
//启动广播扫描
const startBarcodeService = function(obj) {
if (platform == "android") {
mtlBridge.call(
"barcode.startBarcodeService",
JSON.stringify(obj),
obj.callback
)
} else if (platform == "QYAndroid") {
let { callbaseName } = obj;
if (callbaseName) {
mtl.registerCommonCallback(callbaseName,
function(res, responseCallback) {
obj.registerCallback && obj.registerCallback(res);
obj.complete && obj.complete({ data: res, code: 200 });
}
)
}
execUpesnBridge('startBarcodeService', obj)
}
};
//结束广播扫描
const stopBarcodeService = function(obj) {
if (platform == "android") {
mtlBridge.call(
"barcode.stopBarcodeService",
JSON.stringify(obj),
obj.callback
)
} else if (platform == "QYAndroid") {
execUpesnBridge('stopBarcodeService', obj)
}
};
//内部方法
function execUpesnBridge(method, source) {
let data = {
...source,
pluginMethodName: method,
pluginClassKey: (platform == "QYAndroid") ? 'barcode' : 'UPESNBARCODEManager',
success: function(res) {
let resObj = (res && res === 'string') ? JSON.parse(res) : res;
source.success && source.success(resObj)
source.complete && source.complete({
code: 200,
data: resObj,
})
},
fail: function(err) {
const { errCode = 1, errDescription } = err;
let errMes;
try {
errMes = JSON.parse(errDescription);
} catch (error) {
errMes = { message: errDescription };
}
let result = {
code: errCode,
message: errMes.message
};
source.fail && source.fail(result);
source.complete && source.complete(result)
},
};
console.log('barcode', data)
YYEsnBridge.do("customPlugin", data);
};
exports.module = { startBarcodeService, stopBarcodeService };
exports.symbolPath = exports.symbolPath || "barcode";
return exports;
}
export default Plugin;