pda广播扫码

admin2024-04-03  0

一、查看pda的广播动作和数据标签

每个品牌pda的广播动作和数据标签查看方式不同,我这里是(海康威视)pda,后面代码中需要用到

查看方式:pda自带的app 扫码工具 --- 输出配置 --- 输出模式

pda广播扫码,第1张

pda广播扫码,第2张

pda广播扫码,第3张

二、封装扫描工具类pdaScanCode.js

let main;
let filter;
let receiver;
let tag = false;
/**
 * 开始广播监听扫码
 */
const start = () => {
  main.registerReceiver(receiver, filter);
};

/**
 * 停止广播监听扫码
 */
const stop = () => {
  main.unregisterReceiver(receiver);
};

/**  剩余下个变量已经做了全局变量
 *
 * 定义广播
 * that:传this;
 */
const init = (onReceive) => {
  console.log("--------初始化广播扫码");
  //获取activity
  main = plus.android.runtimeMainActivity();
  const IntentFilter = plus.android.importClass("android.content.IntentFilter");
  filter = new IntentFilter();
  // 扫描设置的广播动作 改成自己pda的广播动作 android.intent.ACTION_SCAN_OUTPUT
  filter.addAction("android.intent.ACTION_SCAN_OUTPUT");
  receiver = plus.android.implements(
    "io.dcloud.feature.internal.reflect.BroadcastReceiver",
    {
      onReceive: (context, intent) => {
        plus.android.importClass(intent);
        // 改成自己pda的数据标签 barcode
        const code = intent.getStringExtra("barcode");
        // 业务
        //防重复
        if (tag) return;
        tag = true;
        setTimeout(() => {
          tag = false;
        }, 150);
        //到这里扫描成功了,可以调用自己的业务逻辑,code就是扫描的结果    return出code进行业务处理
        onReceive && onReceive(code);
      },
    }
  );
};

export const broadcastScan = {
  init,
  start,
  stop,
};

三、在main.js中,将broadcastScan挂在到原型链上

pda广播扫码,第4张

三、使用

onLoad: function(option) {
  //init传入一个回调函数做参数,在扫描的时候会将数据传入这个方法里,然后在处理你的业务逻辑
  this.$broadcastScan.init(this.getScancode);
},
onUnload() {
  this.$broadcastScan.stop();
},
onHide() {
  this.$broadcastScan.stop();
},
onShow() {
  this.$broadcastScan.start();
},
methods: {
  getScancode(code) {
    console.log(code, '------------------pda硬件扫码值');
  }
}

这世界很喧嚣,做你自己就好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!