2022年5月21日
uni-app支持Honeywell pda设备激光扫码
最近使用uni-app的App项目需要支持Honeywell pda手持设备激光扫码,研究了一天总结出来了三套方法。
一(推荐)、使用插件市场Honeywell 霍尼韦尔扫码 红外扫码 – DCloud 插件市场配置到Hbuilder X的manifest.json-App原生插件配置-云端插件,勾选Honeywell 霍尼韦尔扫码 红外扫码插件,然后运行-运行到手机或模拟器-制作自定义调试基座,在需要调用该插件的页面onShow()里面写如下代码进行调试,这个方法发布正式Apk需要付费89元购买。
onShow() {
var honeywellDevice = uni.requireNativePlugin("gjl-honeywellDevice-sacn");
honeywellDevice.initHoneywellDevice((code) => {
console.log(code)
})
},
二、通过plus.key.addEventListener(‘keydown’使用input组件来存放扫码结果,该方式属于野路子,pda扫码结果没有问题,监听的Honeywell设备左右两个激光扫码键分别是keyCode为291和290,但是页面里input焦点的定位、设备软键盘的弹出、页面跳转后返回继续扫码都存在一定的不太好解决的问题。代码如下:
<template>
<input type="text" :focus="focusCode" v-model="scanCode" >
</template>
onShow() {
plus.key.addEventListener('keydown', event=>{
if (event.keyCode == 290 || event.keyCode ==291) {
this.focusCode = true
let that = this
setTimeout(function() {
console.log(that.scanCode)
},1000)
}
})
},
三、网上互相抄袭的pda设备的广播扫码方法,该方法不适用于Honeywell设备,我找了半天没找到广播设置在哪里,代码就不贴了,网上一大堆重复的,调试了一顿没有任何反应,遂放弃这种,其他厂家其他型号的的pda设备可以试试。