<template>
|
<view>
|
<view class="content">
|
</view>
|
</view>
|
</template>
|
|
<script>
|
var main, receiver, filter;
|
var action, extraKey;
|
var _codeQueryTag = false;
|
export default {
|
data() {
|
return {
|
scanCode: ''
|
}
|
},
|
created: function(option) {
|
uni.getSystemInfo({
|
success: (res) => {
|
var brand = res.brand.toUpperCase();
|
var model = res.model.toUpperCase();
|
if (brand.indexOf("ZEBRA")!=-1 && model.indexOf("TC2")!=-1) {
|
action = "com.zebra.scan";
|
extraKey = "com.motorolasolutions.emdk.datawedge.data_string";
|
} else if (brand.indexOf("SEUIC")!=-1||brand.indexOf("AUTOID")!=-1) {
|
action = "com.android.server.scannerservice.broadcast";
|
extraKey = "scannerdata";
|
}else{
|
return;
|
}
|
console.log(action);
|
console.log(extraKey);
|
this.initScan()
|
this.startScan();
|
}
|
})
|
|
|
|
},
|
onHide: function() {
|
this.stopScan();
|
},
|
destroyed: function() {
|
this.stopScan();
|
},
|
methods: {
|
initScan() {
|
console.log('initScan');
|
let _this = this;
|
main = plus.android.runtimeMainActivity(); //获取activity
|
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
|
filter = new IntentFilter();
|
//下面的addAction内改为自己的广播动作
|
filter.addAction(action);
|
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
|
onReceive: function(context, intent) {
|
console.log('onReceive');
|
plus.android.importClass(intent);
|
//下面的getStringExtra内改为自己的广播标签--有误
|
let code = intent.getStringExtra(extraKey);
|
_this.queryCode(code);
|
}
|
});
|
},
|
startScan() {
|
console.log('startScan');
|
main.registerReceiver(receiver, filter);
|
},
|
stopScan() {
|
console.log('stopScan');
|
main.unregisterReceiver(receiver);
|
},
|
queryCode: function(code) {
|
console.log('queryCode');
|
if (_codeQueryTag) return false;
|
_codeQueryTag = true;
|
setTimeout(function() {
|
_codeQueryTag = false;
|
}, 150);
|
var id = code
|
uni.$emit('scan', {
|
code: id
|
})
|
}
|
}
|
}
|
</script>
|
|
<style>
|
|
</style>
|