直接在onload執行下列代碼
var main = plus.android.runtimeMainActivity(); //獲取activityvar 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();filter.addAction('com.action.SCAN_RESULT'); // 添加廣播動作名稱 注意(這里要更換為你自己的需要問廠商)main.registerReceiver(receiver, filter); //注冊監聽function doReceive(context, intent) {//通過intent實例引入intent類,方便以后的‘.’操作plus.android.importClass(intent);// =======================注意:這里要更換為你自己的 下文scanContext 和 length要更換為自己的 需要問廠商//條碼內容var barcodeBytes = intent.getByteArrayExtra('scanContext');var barcode = byteToString(barcodeBytes);//條碼長度var barcodeLength = intent.getIntExtra('length', 0);console.log('length', barcodeLength);//條碼類型var barcodeTypeBytes = intent.getByteExtra('barcodeType', 0 | 0);var barcodeType = byteToString(barcodeTypeBytes);console.log('結果:', barcode);// 結果:, Amb:25.91ᄀ₩,Object:23.71ᄀ₩,Body:35.00ᄀ₩// 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;}