55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
let main, receiver, filter, _codeQueryTag = false, temp = [], init = false, start = false;
|
||
export default {
|
||
initScan() {
|
||
if(init) return
|
||
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(uni._qs_scanlistener_action || "com.uniappPda.ACTION"); // 换你的广播动作,你的pda设备里面看
|
||
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
|
||
onReceive: function(context, intent) {
|
||
plus.android.importClass(intent);
|
||
let code = intent.getStringExtra(uni._qs_scanlistener_label || "com.uniapp.gatedge"); // 换你的广播标签,你的pda设备里面看
|
||
_this.queryCode(code);
|
||
}
|
||
});
|
||
init = true
|
||
},
|
||
startScan() {
|
||
if(!start) {
|
||
start = true
|
||
main.registerReceiver(receiver, filter);
|
||
}
|
||
},
|
||
stopScan() {
|
||
if(start) {
|
||
start = false
|
||
main.unregisterReceiver(receiver);
|
||
}
|
||
},
|
||
install(fn) {
|
||
if(typeof fn == 'function' && !~temp.indexOf(fn)) temp.push(fn)
|
||
},
|
||
uninstall(fn) {
|
||
if(typeof fn == 'function') {
|
||
const index = temp.find(i=>i == fn)
|
||
if(~index) temp.splice(index, 1)
|
||
}
|
||
},
|
||
queryCode: function(code) {
|
||
//防重复
|
||
// if (_codeQueryTag) return false;
|
||
// _codeQueryTag = true;
|
||
// setTimeout(function() {
|
||
// _codeQueryTag = false;
|
||
// }, 150);
|
||
if(temp && temp.length) {
|
||
temp[temp.length - 1](code)
|
||
}
|
||
uni.vibrateShort()
|
||
uni.$emit("qs_scanlistener_handle", code);
|
||
}
|
||
}
|