# mx-erp-pda **Repository Path**: caiden0721/mx-erp-pda ## Basic Information - **Project Name**: mx-erp-pda - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-08 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mx-erp-pda #### 介绍 axios 安装插件 npm install axios --save npm install axios axios-adapter-uniapp --save #### 优博讯I6310 PDA扫码枪监听广播 ```javascript 在OnLoad页面里面调用开启监听方法: this.openScanListernHandle() ``` ####编写监听方法【openScanListernHandle】代码 ```javascript let page = this; this.title = "开始监听!"; var main = plus.android.runtimeMainActivity(); //获取activity var context = plus.android.importClass('android.content.Context'); //上下文 var receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', { onReceive: doReceive }); var IntentFilter = plus.android.importClass('android.content.IntentFilter'); var Intent = plus.android.importClass('android.content.Intent'); var filter = new IntentFilter(); //针对优博讯安卓PDA-i6300A添加监听,其它优博讯的型号应该一样或类似 ,这个可以在【设置】-》【扫码设置】里面查看广播动作 filter.addAction("android.intent.ACTION_DECODE_DATA"); //监听扫描 main.registerReceiver(receiver, filter); //注册监听 function doReceive(context, intent) { //通过intent实例引入intent类,方便以后的‘.’操作 plus.android.importClass(intent); //条码内容 var barcodeBytes = intent.getByteArrayExtra("barcode"); var barcode = byteToString(barcodeBytes); //条码长度 var barcodeLength = intent.getIntExtra("length", 0); //var myArray = new ArrayBuffer(0); //条码类型 var barcodeTypeBytes = intent.getByteExtra("barcodeType", (0 | 0)); var barcodeType = byteToString(barcodeTypeBytes); // uni.showModal({ // content: '条码:' + barcode + '\r\n长度:' + barcodeLength + '\r\n类型:' + barcodeType, // showCancel: false // }); page.title = barcode; console.log('barcode',barcode,barcodeLength + '===' + barcodeType,) //console.log(barcode); //main.unregisterReceiver(receiver);//取消监听 } function byteToString(arr) { if (typeof arr === 'string') { return arr; } var str = '', _arr = arr; for (var i = 0; i < _arr.length; i++) { var one = _arr[i].toString(2), v = one.match(/^1+?(?=0)/); if (v && one.length == 8) { var bytesLength = v[0].length; var store = _arr[i].toString(2).slice(7 - bytesLength); for (var st = 1; st < bytesLength; st++) { store += _arr[st + i].toString(2).slice(2); } str += String.fromCharCode(parseInt(store, 2)); i += bytesLength - 1; } else { str += String.fromCharCode(_arr[i]); } } return str; } ```