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,};