来访~101741 文章~106 评论~25
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设备可以试试。