uniapp PDA广播扫码

本文介绍了如何在uniapp中监听东大PDA内置扫描工具,实现在扫描条码后自动将数据填充到input输入框,无需手动调用uni.scanCode。通过设置广播接收器并配置相应的广播动作和键值,实现了数据的自动处理。同时提供了调用代码示例和广播监听的启停方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

此处附带PDA拍照的坑的文章:https://blog.youkuaiyun.com/ZhouLoverBrother/article/details/114832566?spm=1001.2014.3001.5502

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值