uniapp 支持pda

var main, receiver, filter;
var _codeQueryTag = false;
export default {
    initScan() {

        console.log("=初始化(二维码扫码)广播=");

        let _this = this;
        main = plus.android.runtimeMainActivity();//获取activity
        var IntentFilter = plus.android.importClass('android.content.IntentFilter');
        filter = new IntentFilter();
        //android.intent.ACTION_DECODE_DATA
        filter.addAction("com.sunmi.scanner.ACTION_DATA_CODE_RECEIVED"); // 换你的广播动作,你的pda设备里面看
        receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
            onReceive: function (context, intent) {
                console.log("=监听返回=");
                // console.log(context);
                //barcode_string
                plus.android.importClass(intent);
                let code = intent.getStringExtra("data");// 换你的广播标签,你的pda设备里面看
                // console.log(code);
                _this.queryCode(code);
            }
        });
    },
    startScan() {
        console.log("=开启(二维码扫码)广播=");
        main.registerReceiver(receiver, filter);
    },
    stopScan() {
        console.log("=关闭(二维码扫码)广播=");
        main.unregisterReceiver(receiver);
    },
    queryCode: function (code) {
        //防重复
        if (_codeQueryTag) return false;
        _codeQueryTag = true;
        setTimeout(function () {
            _codeQueryTag = false;
        }, 150);

        console.log('(二维码扫码)code:', code);
        console.log(typeof code);


        uni.$emit("scan_handle", code);

    }
}

上述文件 在 App.vue 中引用


	import pdaScan from '@/utils/pdaScan.js';
onLaunch: function() {
		//初始化广播
		pdaScan.initScan();
},
onShow: function() { 
		//监听广播
		pdaScan.startScan();
},
onHide: function() {
		console.log('App Hide')
		//监听广播
		pdaScan.stopScan();
},

最后在需要监听激光扫码的页面 进行监听 


	import pdaScan from '@/utils/pdaScan.js';
onLoad() {
		    let that = this
			console.log('load-----------------');
			pdaScan.initScan();
			uni.$on('scan_handle',function(data){
				console.log('data',data);
				this.result1 = 'didi'
				if(!this.page_show) return false;
				console.log('scan_index 监听到事件来自 scan_handle ,携带参数 data 为:' + data);
				//这里根据你当前业务逻辑写
				this.resp_result = data
				this.toScan()
				this.$forceUpdate()
			}.bind(this));
		},
	onShow(){
			console.log("show进入前台,开启监听状态");
			this.page_show = true;
		},
		onHide() {
			console.log("hide进入后台,关闭状态");
			this.page_show = false;
			pdaScan.stopScan();
		},
		onUnload() {
			this.page_show = false;
			pdaScan.stopScan();
			console.log("监听页面返回")
		},

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值