uniapp监听PDA激光扫描

我们先打开
PDA手机
设置->扫描->Default->关闭(键盘方式输出) 才能使用广播监听。

image.png

在你的uni-app项目里 新建一个公共组件 就叫 scan-code 吧,放到公共组件components中,目录:components/scan-code/scan-code.vue这里就用到了广播动作和广播数据标签

filter.addAction("android.intent.ACTION_DECODE_DATA")

intent.getStringExtra("barcode_string")

代码里的filter.addAction里换成你的广播动作,intent.getStringExtra(里换成你的广播标签

代码如下:

<template>  
    <view class="content"></view>  
</template>  

<script>
var main,receiver,filter;
var _codeQueryTag = false;
export default {
data() {
return {
scanCode: ‘’
}
},
created: function (option) {
this.initScan()
this.startScan();
},
onHide:function(){
this.stopScan();
},
destroyed:function(){
/页面退出时一定要卸载监听,否则下次进来时会重复,造成扫一次出2个以上的结果/
this.stopScan();
},
methods: {
initScan() {
let _this = this;
main = plus.android.runtimeMainActivity();//获取activity
var IntentFilter = plus.android.importClass(‘android.content.IntentFilter’);
filter = new IntentFilter();
filter.addAction(“android.intent.ACTION_DECODE_DATA”); // 换你的广播动作
receiver = plus.android.implements(‘io.dcloud.feature.internal.reflect.BroadcastReceiver’,{
onReceive : function(context, intent) {
plus.android.importClass(intent);
let code = intent.getStringExtra(“barcode_string”);// 换你的广播标签
_this.queryCode(code);
}});
},
startScan(){
main.registerReceiver(receiver,filter);
},
stopScan(){
main.unregisterReceiver(receiver);
},
queryCode: function(code){
//防重复
if(_codeQueryTag)return false;
_codeQueryTag = true;
setTimeout(function(){
_codeQueryTag = false;
},150);
var id = code
console.log(‘id:’, id)
uni.$emit(‘scancodedate’,{code:id})
}
}
}
</script>

<style>
page {
background-color: #efeff4;
}
.content {
text-align: center;
}
</style>

页面引用,只引用一次就好,我是index.vue 引用的,我的app的其他功能都是在这个页面链接走的

直接上代码:

切记:首页往各个子页面跳转的时候 移除监听事件uni.$off('scancodedate'),要不首页的监听会一直存在,就会出现首页这个扫码

uni.navigateTo({ 之前、之前、之前 uni.$off('scancodedate')

<template>  
    <view>  
        <view>你的页面内容</view>  
        <scan-code></scan-code>  
    </view>  
</template>  

<script>
import scanCode from “@/components/scan-code/scan-code.vue”;
export default {
components: { scanCode },
data() {
return {}
}
onShow: function() {
var _this = this
uni. o f f ( ′ s c a n c o d e d a t e ′ ) / / 每 次 进 来 先 移 除 全 局 自 定 义 事 件 监 听 器 u n i . off('scancodedate') // 每次进来先 移除全局自定义事件监听器 uni. off(scancodedate)//uni.on(‘scancodedate’,function(data){
console.log(‘你想要的code:’, data.code)
})
}
}

其他的页面引用方法:不需要再次引入scanCode因为其他的页面都是从首页跳转过来的,所以其他的页面需要

onUnload() {
// 移除监听事件
uni.$off('scancodedate')
}

onLoad() {  
   var _this = this  
   uni.$on('scancodedate',function(data){  
        // _this 这里面的方法用这个 _this.code(data.code)  
    console.log('你想要的code:', data.code)  
   })  
},  
onUnload() {  
   // 移除监听事件      
   uni.$off('scancodedate')  
}  
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uniapp是一款跨平台的应用开发框架,可以用于开发多种移动应用。在Uniapp中,我们可以通过调用PDA的广播扫描功能实现条码扫描等操作。 调用PDA的广播扫描,我们首先需要在Uniapp中编写相应的代码,利用Uniapp提供的插件或原生API来与PDA设备进行通信。我们可以使用uni.scanCode方法来调用PDA的广播扫描功能,并获取扫描得到的条码信息。 在Uniapp中,我们可以在Vue组件的methods属性中定义一个扫描方法,然后在需要扫描的页面或组件中调用该方法。例如: methods: { scanCode() { uni.scanCode({ success: (res) => { console.log(res.result); // 扫描成功后的操作 }, fail: (err) => { console.log(err); // 扫描失败后的操作 } }); } } 在上述代码中,我们通过uni.scanCode调用PDA的广播扫描功能。成功扫描到条码后,将在控制台输出扫描结果,并可以进行后续的操作。如果扫描失败,也可以在控制台输出错误信息。 需要注意的是,调用PDA的广播扫描功能可能需要在Uniapp的manifest.json配置文件中添加相应的权限声明,以确保应用可以正常调用PDA设备的功能。 总之,通过以上方法,我们可以在Uniapp中调用PDA的广播扫描功能,实现条码扫描等应用开发需求。 ### 回答2: UniApp是一种跨平台应用开发框架,可以使用HTML5、CSS3和JavaScript开发移动应用程序。如果想要通过UniApp调用PDA广播扫描功能,可以通过以下步骤实现。 首先,需要使用uni.requireNativePlugin方法引入相关的原生插件,该插件可以帮助我们与PDA设备进行通信。 然后,在需要使用扫描功能的页面中,可以使用uni.showModal方法弹出一个提示框,提示用户点击扫描按钮开始扫描。 同时,需要监听用户点击扫描按钮的事件,可以通过uni.scanCode方法调用PDA设备的扫描功能。 在扫描完成后,可以使用uni.showToast方法弹出一个提示信息,显示扫描结果。 最后,需要在uni.onHide方法中关闭PDA设备的扫描功能,以免造成资源浪费。 通过以上的步骤,我们可以在UniApp中通过调用PDA设备的广播扫描功能来实现移动应用程序的开发。该方法可以为用户提供更加便捷和高效的扫描体验,大大提升用户的使用感受。 ### 回答3: Uniapp 是一款跨平台的开发框架,它能够让开发者使用一套代码同时在多个平台上构建应用程序。那么如何在Uniapp中调用PDA设备进行广播扫描呢? 首先,我们需要明确PDA设备的广播扫描功能是通过其特定的API来实现的,因此我们需要使用Uniapp中的原生插件来访问这些API。通常来说,我们可以使用uni-app-plus插件来完成这个功能。 首先,在Uniapp项目中引入uni-app-plus插件,然后使用相关的API方法来实现PDA设备的广播扫描功能。具体的步骤如下: 1. 在Uniapp项目的`manifest.json`文件中,需要配置`permission`字段,以确保应用程序具有PDA设备的使用权限。 2. 在需要调用PDA设备广播扫描的页面中,使用uni-app-plus插件提供的API方法来实现广播扫描功能。具体的API方法可以根据设备的具体型号和接口规范来确定。 3. 在调用API方法之前,需要使用uni-app-plus插件提供的方法来判断PDA设备是否可用。 4. 调用广播扫描的API方法,接收设备返回的扫描结果,然后对结果进行相应的处理,比如展示在页面上或者进行其他操作。 需要注意的是,具体的实现步骤可能会因为设备型号、接口规范等因素而有所差异,因此在实践中需要根据设备的具体情况进行调整和修改。 总结起来,Uniapp调用PDA广播扫描的过程主要是通过引入uni-app-plus插件,并使用插件提供的API方法来实现的。通过正确配置权限和调用API方法,我们可以在Uniapp项目中实现PDA设备的广播扫描功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值