关于uinapp 调用PDA设备激光扫码 - 广播模式
1. 不是所有的PAD设备 都有设置-扫描设置-然后选择广播模式(查看广播动作-广播标签),可能也是在pad设备自带扫描工具(app)参数设置里面–然后选择广播模式(查看广播动作/名称-广播标签/键值/key)
2 . 组件设置
<template><view><view class="content"></view></view></template><!-- 激光扫码,广播模式 --><script>var main, receiver, filter;var codeQueryTag = false;export default {data() {return {scanCode: ''}},created() {this.initScan()this.startScan();},onHide() {this.stopScan();},destroyed() {this.stopScan();},methods: {initScan() {// #ifdef APPconsole.log('initScan:扫码初始化');let that = this;main = plus.android.runtimeMainActivity(); //获取activity//var context = plus.android.importClass('android.content.Context'); //上下文var IntentFilter = plus.android.importClass('android.content.IntentFilter');filter = new IntentFilter();//下面的addAction 改为自己 pad 设备的广播动作(在扫描设置或者厂商附带的app 里面设置为广播模式,然后查看相应参数)filter.addAction("com.scanner.broadcast");receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {onReceive: (context, intent)=> {console.log('---onReceive:',context, intent);plus.android.importClass(intent);//下面的getStringExtra内改为自己的广播标签(键值/key): dataconsole.log('---***getStringExtra: ',intent.getStringExtra("data"));let code = intent.getStringExtra("data");console.log('---扫码data: ', code);that.queryCode(code);}});// #endif},startScan() {// #ifdef APPconsole.log('startScan,开启广播接收');main.registerReceiver(receiver, filter);// #endif},stopScan() {// #ifdef APPconsole.log('stopScan,结束');main.unregisterReceiver(receiver);// #endif},// 避免重复扫码queryCode: function(code) {// #ifdef APPif (codeQueryTag) return false;codeQueryTag = true;setTimeout(function() {codeQueryTag = false;}, 150); console.log('-****--扫码code: ',code);let data = codeuni.$emit('xwscan', {code: data})// #endif}}}</script>
** 3.** 调用
<template><view class="content"><view class="uni-form-item uni-column"><view class="title">实时获取请扫描输入值:{{value}}</view><u--input class="input" v-model="value" placeholder="请扫描" :focus="focus" clearable @input="onInput"@confirm="confirm" @blur="blur"/></view><xw-scan></xw-scan></view>
</template><script>// 广播模式激光扫码import xwScan from '@/components/padDevice/scan-code.vue'export default {components: {xwScan},data() {return {value: '',focus: false,scanTitle: "扫描结果",}},onLoad() {// plus.key.addEventListener('keydown', event => {// console.log("按键:" + event);// console.log("按键:" + event.keyCode);// if (event.keyCode == '139') {// uni.hideKeyboard();// }// });},onUnload() {// 移除监听事件 uni.$off('xwscan')},onShow() {uni.$off('xwscan') // 每次进来先 移除全局自定义事件监听器uni.$on('xwscan', (res) => {console.log('扫码结果:', res.code);this.scanTitle = '激光扫码结果';this.value= res.code;})},methods: {focusHide(val) {let that = this// setTimeout(() => {that.focus = true;// }, 100)console.log('eeeee')// 这是隐藏自动弹出软键盘 (好像没有用)setTimeout(() => {uni.hideKeyboard();}, 100)},blur(){this.focus = false;},confirm(value) {// 自动多次扫码let that = this// that.value = ''setTimeout(() => {that.focus = false;that.$nextTick(() => {that.focus = true;});// that.value = ''}, 350)console.log('扫码结果:', value);},onInput(value) {this.value = value},}}
</script>
关于uinapp 调用PDA设备激光扫码 - 广播模式相关推荐
- vue3 + uniapp 实现PDA设备的扫码功能
vue3 + uniapp 实现PDA设备的扫码功能 这里必须要用input 不然输入框不能再次聚焦!!!!!!!! 只有input 默认聚焦状态,扫码枪的数据才会默认填入input <inpu ...
- uniapp 实现PDA设备的扫码功能 超级详细篇
1. 原理 说明:项目中使用的是标准的扫码枪,标准的意思就是它都不给开发文档.走的标准"输入事件",和外接键盘是一样的.扫码枪扫描到的条形码每一位会触发一次onkeydown事件. ...
- uniapp在PDA手持终端扫码
PDA手持终端输出方式分为广播输出和键盘输出,针对广播输出和键盘输出获取到扫码或者输入的值 方式一.PDA手持终端激光扫码调用方式(广播输出) <template><view cla ...
- 2,uniapp功能之—扫码(条形码,二维码)点击扫码或者pda侧边按钮扫码
最近在搞uniapp的项目,所以最近的文章基本上是关于uniapp的. 分享一个自动生成二维码的网址,点击前往 注意 如果扫码和上一个nfc功能在同一个页面里面,会发生冲突,只有一个有用,一个没有用, ...
- 【解决】uniapp,无法在onLoad及onUnload生命周期内触发激光扫码的监听事件,可在created及beforeDestroy生命周期内触发
[问题] uniapp开发App,发现无法在onLoad及onUnload生命周期内触发及销毁子组件内的激光扫码的监听事件. 子组件内示例代码如下: <script> export def ...
- JAVA微信扫码支付模式二功能实现完整例子
概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...
- 微信支付开发(2) 扫码支付模式一
关键字:微信支付 微信支付v3 native支付 扫码支付模式一 统一支付 Native支付 prepay_id 作者:方倍工作室 原文: http://www.cnblogs.com/txw195 ...
- Java之微信支付(扫码支付模式二)案例实战
摘要:最近的一个项目中涉及到了支付业务,其中用到了微信支付和支付宝支付,在做的过程中也遇到些问题,所以现在总结梳理一下,分享给有需要的人,也为自己以后回顾留个思路. 一:微信支付接入准备工作: 首先, ...
- 随手记录JAVA微信扫码支付模式二功能
概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...
最新文章
- Java 锁机制 synchronized
- Django中手动创建虚拟环境
- Codeforces Round #631 (Div. 2) C. Dreamoon Likes Coloring 构造
- 引用:初探Sql Server 执行计划及Sql查询优化
- 神舟战神换cpu教程_神舟将十代i5称为“神U出世”?聊聊到底有哪些优势
- 高能!这些段子已刷爆大学老师朋友圈
- Mysql 使用正则表达式
- keras + tensorflow —— 文本处理
- 小学的题 大学的解法
- 关于Javascript, php的web公开课笔记
- 关于hibernate的mappedBy的使用:
- 【图像分类】ResNet网络结构
- Win10家庭中文版 如何启用组策略
- 最新最全论文合集——基于机器学习/深度学习的睡眠信号分类
- PageOffice 安装使用说明
- 新浪微博PC客户端(DotNet WinForm C# 版,C#调用新浪微博API代码,源码下载)—— 初探 (第二部分内置链接)
- jquery.uploadify php,jquery插件uploadify使用详解
- pytoch矩阵乘法torch.bmm
- Unix下 压缩和解压缩命令
- leetcode 题解 904.水果成篮(Typescript)
热门文章
- oracle查看分区表的数据,ORACLE数据库查看分区表相关信息的方法
- matlab function输入,怎样在matlab function模块中实现多输入
- Device eth0 has different MAC address than expected, ignoring.
- CC、Pix4D、PhotoScan生成正射影像并进行拼接修图(附航测练习数据下载)
- php如何适应360兼容模式,教你360浏览器开启兼容模式的图文教程
- 嵌入式Linux系统图形及图形用户界面综述
- 【办公】office无法正常使用中文输入法
- java的赋值运算符_Java赋值运算符
- ros update 失败解决方法
- Android之使用SmartImageView加载图片