封装了uniapp 扫描api函数并挂载,可以使用this调用,打自定义包首次安装运行或者重启可以扫描,页面退出,再进来扫描页面就黑屏,如下面的图片。
控制台打印
17:29:52.163 ** o :>> , [Object] {"fail":"识别失败","flash.on":"轻触照亮","flash.off":"轻触关闭"} at mixins/i18n.js:78
关键代码
export default {
scanCode(callback) {
let errType = ["EAN_8", "UPC_E"];
let r = {
success: false,
code:'0000',
result: {}
};
uni.scanCode({
scanType: ['barCode', 'qrCode'],
success: function(res) {
console.log(' res扫描结果=====>', res);
r.result = res.result;
r.success = true;
if (errType.includes(res.scanType)) {
r.code = '0001'; // 此类型条码被过滤!
r.errMsg = "识别失败,错误码:"+r.code+"请重试!";
}
callback && callback(r);
},
fail: function(err) {
console.log(' err', err);
callback && callback(r);
}
});
}
}
vue页面调用这个扫描方法
methods: {
scanCode() {
调起条码扫描
this.$mHelper.scanCode((r)=> {
const {result} = r;
if (r.success) {
this.baseForm.searchinput = result.split(",")[1];
this.search()
}else {
this.$mHelper.toast(r.errMsg)
}
})
}
}