推广

uniapp监听PDA激光扫描

iseeyu2年前 (2024-02-21)推广126

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.$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')  
}  

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://0291.com.cn/post/57296.html

相关文章

SSL证书申请的成功与否会影响网站加载速度。

SSL证书申请的成功与否会影响网站加载速度。

说到HTTPS和SSL,我们不禁要说HTTP和它们之间的区别。我们对HTTP也就是超文本传输协议并不陌生,但在安全性方面存在一定的缺陷,即缺乏明文传输和消息完整性检测。这种安全漏洞很容易被用来获取个人信息,如手机、信用卡号码等,特别是网上交易、支付等已经非常普遍。为了保证这些私有数据能够被加密,Ne...

我来教你如何找合适的公司进行网站优化。

我来教你如何找合适的公司进行网站优化。

很多企业由于做不懂优化,网站匆忙上线,上线之后也不管,所以导致网站关键词排名非常低,做网站优化,不是很多企业想的那样,网站上线,设置关键词,就有排名了。 网站优化是指对网站在了解搜索引擎自然排名机制的基础之上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中关键词的自然排名,获得更多的展现量,...

外贸网站做谷歌SEO优化的流程。

外贸网站做谷歌SEO优化的流程。

外贸网站做谷歌SEO优化的流程可以概括为:网站站内基础优化 、网站内容建设、外链建设、流量建设 、数据分析 。今天网站建设公司重蔚自留地为您详解一下具体含义: 1. 网站站内基础优化。 站内基础优化需要调整的细节比较多,比如,根据目标关键词对网站整体架构做调整,每个网页的TDK撰写,内链布置,图...

分享鞋包如何做网络营销推广,鞋包发布信息平台。

分享鞋包如何做网络营销推广,鞋包发布信息平台。

想让别人在网络上了解到你,首先你要出现在网上,所以任何一个品牌都有不断的把品牌产品信息发到网路上,那么目前网络上有哪些微商货源信息发布平台呢?今天货源代理网小编就给大家介绍下网络推广经常用的信息发布平台 对于网络营销,搜索引擎是绕不过去的一个渠道,尽管现在短视频非常火爆,但了解一个事物,大部分...

能量不守恒会发生什么事情?

能量不守恒会发生什么事情?

能量守恒可能是在一定范围内,如果超出了这个范围,也许就在宇宙的尽头,大爆炸引起的物质与能量转换出现了错位。但是现在是超出了当代科学研究的范围!!...

抖音VS视频号,哪个更适合直播带货

引言我们都知道,抖音直播带货每年都是在一倍倍增长,去年其实还有一个很火的赛道,就是视频号,也确实有一段时间没有聊视频号了,可能大家都没有关注视频号的情况。视频号去年关注的人不是很多,原因显而易见,因为大家都在弄抖音,但是视频号是不是真的没有价值?是不是真的不适合带货?其实也...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片