uniapp 监听PDA扫描工具数据

1、需要是:App监听东大PDA内置的扫描工具,通过扫描工具扫描条码,把数据主动赋值在input输入框,无需手动设置或者调用uniapp的uni.scanCode({})去赋值
2、这里申明下,在封装的JS外面,你须要晓得你的PDA的播送动作,键值称,去设置后,能力对应失效,我这边是东大的出厂设置
3、调用的代码曾经封装成js,间接去复制调用即可,感觉能解决了问题的,动动小指头点个赞~ O(∩_∩)O

附带一张扫描工具样子:

A、页面上的调用如下:

import { websocetObj } from '@/utils/websocet/websocet.js';  methods:{  getScancode(code){            this.config =code        }  },    onLoad() {     //init传入一个回调函数做参数,在扫描的时候会将数据传入这个办法里,而后在解决你的业务逻辑        broadcastScan.init(this.getScancode);    },    onUnload() {        broadcastScan.stop();    },    onHide() {        broadcastScan.stop();    },    onShow() {        broadcastScan.start();    }

B、创立一个js文件,复制以下代码。

let main;let filter;let receiver;let tag = false;/** * 开始播送监听扫码 * that:传this; */const start = () => {    /* #ifdef APP-PLUS */    main.registerReceiver(receiver, filter);    /* #endif */}/** * 进行播送监听扫码 * that:传this; */const stop = () => {    /* #ifdef APP-PLUS */    main.unregisterReceiver(receiver);    /* #endif */}/**  残余下个变量曾经做了全局变量 *  * 定义播送 * that:传this; */const init = (onReceive) => {    /* #ifdef APP-PLUS */    //获取activity    main = plus.android.runtimeMainActivity();    const IntentFilter = plus.android.importClass('android.content.IntentFilter');    filter = new IntentFilter();    // 扫描设置的播送名称    filter.addAction("com.android.server.scannerservice.broadcast");    receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {        onReceive: function(context, intent) {            plus.android.importClass(intent);            // 扫描设置的开发者选项--键值名称 scannerdata            const code = intent.getStringExtra("scannerdata");            // 业务            //防反复            if (tag) return;            tag = true;            setTimeout(function() {                tag = false;            }, 150);            //到这里扫描胜利了,能够调用本人的业务逻辑,code就是扫描的后果    return出code进行业务解决            onReceive && onReceive(code);        }    });    /* #endif */}export const broadcastScan = {    init,    start,    stop,};