import {utf8ByteToUnicodeStr} from "./utf8ByteToUnicodeStr.js"
|
var main, receiver, filter;
|
var ScanDeviceClass = plus.android.importClass("android.device.ScanDevice");
|
var scanDevice;
|
export const mixin={
|
data() {
|
return {
|
PhoneModel:''
|
}
|
},
|
created() {
|
let _this=this
|
uni.getSystemInfo({
|
success: function(e) {
|
_this.PhoneModel=e.model
|
if(e.model=='PDA'){
|
scanDevice = new ScanDeviceClass();
|
scanDevice.openScan(); // 打开扫描
|
scanDevice.setOutScanMode(0); // 扫描模式
|
_this.initScan();
|
_this.registerScan();
|
}
|
}})
|
|
|
},
|
onHide: function() {
|
if(this.PhoneModel=='PDA'){this.unregisterScan()}
|
|
},
|
destroyed() {
|
if(this.PhoneModel=='PDA'){this.unregisterScan()}
|
|
},
|
methods: {
|
//PDA广播扫码
|
initScan() {
|
let _this = this;
|
main = plus.android.runtimeMainActivity(); //获取activity
|
var IntentFilter = plus.android.importClass(
|
"android.content.IntentFilter",
|
);
|
filter = new IntentFilter();
|
filter.addAction("scan.rcv.message"); // 换你的广播动作
|
receiver = plus.android.implements(
|
"io.dcloud.feature.internal.reflect.BroadcastReceiver", {
|
onReceive: function(context, intent) {
|
plus.android.importClass(intent);
|
let code = intent.getByteArrayExtra("barocode");
|
// let codeStr = String.fromCharCode(...code);
|
|
let codeStr = utf8ByteToUnicodeStr(code);
|
let arr = codeStr.split(',')
|
console.log("codeStr:", codeStr);
|
if(arr.length==2){
|
_this.loginform = {
|
account: arr[0],
|
passWord: arr[1]
|
}
|
_this.register()
|
}else{
|
console.log(codeStr)
|
_this.sacncode=codeStr
|
_this.$emit('scancode',_this.sacncode)
|
}
|
scanDevice.stopScan(); // 停止扫描
|
},
|
},
|
);
|
},
|
registerScan() {
|
main.registerReceiver(receiver, filter);
|
},
|
unregisterScan() {
|
main.unregisterReceiver(receiver);
|
},
|
startScan() {
|
scanDevice.stopScan(); // 停止扫描
|
scanDevice.startScan(); // 开始扫描
|
},
|
}
|
}
|