<script>
|
import {
|
showModal,
|
showToast,
|
} from "@/js/Page.js"
|
const rfidModule = uni.requireNativePlugin('RFIDModule');
|
var main
|
export default {
|
globalData: {
|
largeMode: false,
|
isMobox3: true,
|
deviceId: "",
|
cname: "",
|
mobox3ApiUrl: {
|
org: "",
|
data: "",
|
mobox: "",
|
},
|
mobox2ApiUrl: "",
|
loginUser: {
|
id: "",
|
name: "",
|
pwd: ""
|
},
|
sessionId: "",
|
bindClasses: false,
|
classes: ""
|
},
|
data() {
|
//获取全局参数:url-服务器地址
|
return {
|
|
}
|
},
|
onLaunch: function() {
|
console.log('App Launch');
|
this.deviceInfo = uni.getSystemInfoSync();
|
this.init();
|
},
|
onUnload() {
|
|
if (this.deviceInfo?.brand.includes('alps')) { // 汉德霍尔设备特征
|
// 汉德霍尔 PDA rfid扫码页面卸载时释放资源
|
if (rfidModule) {
|
rfidModule.closeModule();
|
}
|
} else {
|
main.unregisterReceiver(receiver); // 停止监听广播
|
}
|
|
},
|
onShow: function() {
|
|
console.log('App Show')
|
},
|
onHide: function() {
|
console.log('App Hide')
|
},
|
onError(err) {
|
console.error('[UniApp Error]', err)
|
// 可上报到服务器
|
},
|
methods: {
|
|
init() {
|
let that = this;
|
|
if (this.deviceInfo?.brand.includes('alps')) { // 汉德霍尔设备特征
|
|
rfidModule.initModule((res) => {
|
console.log("rfid initModule", res)
|
if (res.code < 0) {
|
showToast(res.msg);
|
}
|
|
})
|
} else if (this.deviceInfo?.brand.includes('mobiwire') || this.deviceInfo?.deviceBrand.includes(
|
'mobiwire')) { // 霍尼韦尔
|
|
this.initMobiwireScan()
|
} else {
|
|
this.initScan()
|
}
|
},
|
initMobiwireScan() {
|
main = plus.android.runtimeMainActivity(); // 获取主 activity
|
var IntentFilter = plus.android.importClass("android.content.IntentFilter");
|
var filter = new IntentFilter();
|
const action = "com.rfid.scan" //默认广播 com.honeywell.scan.broadcast
|
const stringExtra = "data"
|
filter.addAction(action); // 添加广播动作
|
|
receiver = plus.android.implements("io.dcloud.feature.internal.reflect.BroadcastReceiver", {
|
onReceive: function(context, intent) {
|
plus.android.importClass(intent);
|
let code = intent.getStringExtra(stringExtra); // 获取广播中的字符串额外参数
|
uni.$emit("scanresult", code);
|
},
|
});
|
main.registerReceiver(receiver, filter); // 开始监听广播
|
|
},
|
|
initScan() {
|
main = plus.android.runtimeMainActivity() //获取activity
|
var IntentFilter = plus.android.importClass('android.content.IntentFilter') //引入过滤器
|
// Intent = plus.android.importClass('android.content.Intent'),
|
var filter = new IntentFilter()
|
var receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
|
onReceive: function(context, intent) { //实现onReceiver回调函数
|
//console.log('onReceive',intent);
|
plus.android.importClass(intent);
|
// var decodesource = intent.getStringExtra("com.symbol.datawedge.source");
|
var decodedata = intent.getStringExtra("com.symbol.datawedge.data_string");
|
var data = intent.getStringExtra("data");
|
// var decodelabeltype = intent.getStringExtra("com.symbol.datawedge.label_type");
|
var scanResult = decodedata || data
|
console.log('onReceive', scanResult);
|
uni.$emit("scanresult", scanResult);
|
}
|
});
|
|
filter.addAction("com.pda.formobox"); //监听扫码广播
|
filter.addAction('com.rfid.scan') //
|
main.registerReceiver(receiver, filter); //注册监听
|
},
|
onScan(callback) {
|
if (this.deviceInfo?.brand.includes('alps')) { // 汉德霍尔设备特征
|
if (!rfidModule)
|
return
|
rfidModule.startScan((ret) => {
|
console.log("startScan", ret)
|
let text = ""
|
if (ret.code < 0) {
|
showToast(ret.msg);
|
} else {
|
const data = ret.data || []
|
if (Array.isArray(data)) {
|
if (data.length > 0)
|
text = data[0].epc
|
} else {
|
text = data.epc || ""
|
}
|
callback(text);
|
}
|
})
|
} else {
|
uni.$off("scanresult");
|
uni.$on("scanresult", (result) => {
|
callback(result);
|
});
|
}
|
|
},
|
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
/*每个页面公共css */
|
/*Mobox2图标 */
|
@import '@/uni_modules/uni-scss/index.scss';
|
@import '@/fonts/font-awesome/css/font-awesome.css';
|
@import '@/fonts/font-mobox-user/fu.css';
|
@import '@/fonts/font-mobox/fm.css';
|
@import '@/fonts/font-sys/fs.css';
|
/*Mobox3图标 */
|
@import '@/fonts/mobox-dms/style.css';
|
@import '@/fonts/mobox-normal/style.css';
|
@import '@/fonts/mobox-org/style.css';
|
@import '@/fonts/mobox-plm/style.css';
|
@import '@/fonts/mobox-sys/style.css';
|
@import '@/fonts/mobox-wms/style.css';
|
|
.large-mode {
|
font-size: 24px !important;
|
|
uni-input {
|
height: 36px;
|
|
.uni-input-placeholder,
|
.uni-input-input {
|
font-size: 24px !important;
|
}
|
}
|
|
uni-button,
|
.uni-forms-item__label,
|
.uni-section__content-title {
|
font-size: 24px !important;
|
}
|
|
uni-checkbox {
|
.uni-checkbox-input {
|
height: 32px;
|
width: 32px;
|
}
|
|
.uni-checkbox-input-checked:before {
|
font-size: 30px;
|
}
|
}
|
|
uni-radio {
|
.uni-radio-input {
|
height: 32px;
|
width: 32px;
|
}
|
|
.uni-radio-input-checked:before {
|
font-size: 30px;
|
}
|
}
|
|
.uni-date__x-input {
|
font-size: 24px !important;
|
height: 40px !important;
|
|
.uniui-clear {
|
font-size: 30px !important;
|
}
|
}
|
|
.uni-data-tree {
|
font-size: 24px !important;
|
|
.input-value {
|
height: 45px !important;
|
font-size: 24px !important;
|
}
|
|
.placeholder {
|
font-size: 24px !important;
|
}
|
}
|
|
.segmented-control__text {
|
font-size: 24px !important;
|
height: 45px;
|
|
}
|
|
|
}
|
</style>
|