camera组件 scancode 在安卓下工作不正常
安卓手机使用camera媒体组件扫码,似乎不太容易成功,多试几次后就会扫不出结果(bindscancode没有触发,别的事件也没有触发)。使用微信的扫码功能(wx.scanCode)正常。 如果扫一张有好多码的纸,如图,扫到的结果也很奇怪,有时候没在camera范围内的码被扫到。 不确定原因在哪里,看别人提到是因为隐藏的原因,苹果不正常,安卓正常。但我这个没有用隐藏,而且情况反过来了,苹果是正常的,安卓不行。 而且这个功能没有提示音,也没有停止扫描。我期望是扫商品的条码,跳到新的页面显示商品详情。有时候会出现连跳好几次的情况。 希望这个组件扫描时,增加提示音功能,增加停止功能。 [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]id: [代码][代码]''[代码][代码],[代码][代码] [代码][代码]queryResult: [代码][代码]''[代码][代码],[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]onLoad() {[代码][代码] [代码][代码]// this.ctx = wx.createCameraContext()[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]onShow: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]// this.onWxScanCode;[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]onHide: [代码][代码]function[代码][代码]() {[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]onScanCode(e) {[代码][代码] [代码][代码]console.log([代码][代码]'扫码成功,期望值'[代码][代码], e.detail.result);[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]id: e.detail.result[代码][代码] [代码][代码]})[代码][代码] [代码][代码]wx.navigateTo({[代码][代码] [代码][代码]url: [代码][代码]'../productDesc/productDesc?id='[代码] [代码]+ [代码][代码]this[代码][代码].data.id,[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]onWxScanCode: [代码][代码]function[代码][代码](e) {[代码] [代码] [代码][代码]wx.scanCode({[代码][代码] [代码][代码]onlyFromCamera: [代码][代码]true[代码][代码],[代码][代码] [代码][代码]scanType: [代码][代码]'barCode'[代码][代码],[代码][代码] [代码][代码]success(res) {[代码][代码] [代码][代码]console.log(res)[代码][代码] [代码][代码]wx.navigateTo({[代码][代码] [代码][代码]url: [代码][代码]'../productDesc/productDesc?id='[代码] [代码]+ res.result,[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]onError(e) {[代码][代码] [代码][代码]console.log([代码][代码]"scan error:"[代码][代码], e.detail)[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]onInitDone(e) {[代码][代码] [代码][代码]console.log([代码][代码]"init done:"[代码][代码], e.detail)[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]onStop(e) {[代码][代码] [代码][代码]console.log([代码][代码]"user stop:"[代码][代码], e.detail)[代码][代码] [代码][代码]}[代码][代码]})[代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"page-body"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"page-body-wrapper"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]camera[代码] [代码]mode[代码][代码]=[代码][代码]"scanCode"[代码] [代码]device-position[代码][代码]=[代码][代码]"back"[代码] [代码]flash[代码][代码]=[代码][代码]"off"[代码] [代码]binderror[代码][代码]=[代码][代码]"onError"[代码] [代码]bindscancode[代码][代码]=[代码][代码]"onScanCode"[代码] [代码]bindstop[代码][代码]=[代码][代码]"onStop"[代码] [代码]bindinitdone[代码][代码]=[代码][代码]"onInitDone"[代码] [代码]style[代码][代码]=[代码][代码]"width: 100%; height: 200px;"[代码][代码]></[代码][代码]camera[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码] [代码]style[代码][代码]=[代码][代码]"aligh:center"[代码][代码]>对准商品条码扫一扫</[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]button[代码] [代码]bindtap[代码][代码]=[代码][代码]"onWxScanCode"[代码][代码]>调用微信扫码</[代码][代码]button[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][图片]