UNIAPP实现PDA扫码


目前我接触到了两种方法,以扫码pda安卓采集器(可以直接理解为手机上有个激光扫码)的设置划分。

1.扫描设置 --> 键盘方式输出(键盘类型:物理键盘),注意设置要看具体的型号;

2.扫码设置 --> 广播输出

第一种 “键盘方式输出” 直接在input里接收扫到的内容;

第二种 “广播输出” 是写一个公共组件,全局监听。

 

 键盘方式输出

1.input直接拿

注:我司的机器里,可以在设置-->条码格式化里加后缀【CR】(回车键),加入后可在扫描完成后触发@confirm

不可以设置后缀,就在@input里加个setTimeout取消掉焦点(focus = false)

 

 

 

广播输出

1.新建公共组件 scan-code,目录:components/scan-code/scan-code.vue。

注:代码里的filter.addAction里换成你的广播动作,intent.getStringExtra里换成你的广播标签。在扫码枪的设置里有。

 



 

2.引用



3.其他

注:其他的页面引用方法不需要再次引入scanCode
因为其他的页面都是从首页跳转过来的,所以其他的页面需要移除监听事件

onLoad() {  
   var _this = this  
   uni.$on('scancodedate',function(data){  
        // _this 这里面的方法用这个 _this.code(data.code)  
    console.log('你想要的code:', data.code)  
   })  
},  
onUnload() {  
   // 移除监听事件      
   uni.$off('scancodedate')  
} 

4.如果这个页面还有详细页面需要跳转,在uni.navigateTo   之前一定要 uni.$off('scancodedate')

 

 方法二参考: https://ask.dcloud.net.cn/article/37294