| | |
| | | showModal, |
| | | showToast, |
| | | } from "@/js/Page.js" |
| | | const rfidModule = uni.requireNativePlugin('RFIDModule'); |
| | | var main |
| | | export default { |
| | | globalData: { |
| | | largeMode: false, |
| | |
| | | onLaunch: function() { |
| | | console.log('App Launch'); |
| | | this.deviceInfo = uni.getSystemInfoSync(); |
| | | this.initscan(); |
| | | this.init(); |
| | | }, |
| | | onUnload() { |
| | | |
| | | // // 汉德霍尔 PDA rfid扫码页面卸载时释放资源 |
| | | // const rfidModule = uni.requireNativePlugin('HandheldRFID'); |
| | | // rfidModule.closeModule(); |
| | | if (this.deviceInfo?.brand.includes('alps')) { // 汉德霍尔设备特征 |
| | | // 汉德霍尔 PDA rfid扫码页面卸载时释放资源 |
| | | if (rfidModule) { |
| | | rfidModule.closeModule(); |
| | | } |
| | | } else { |
| | | main.unregisterReceiver(receiver); // 停止监听广播 |
| | | } |
| | | |
| | | }, |
| | | onShow: function() { |
| | | |
| | |
| | | onHide: function() { |
| | | console.log('App Hide') |
| | | }, |
| | | onError(err) { |
| | | console.error('[UniApp Error]', err) |
| | | // 可上报到服务器 |
| | | }, |
| | | methods: { |
| | | initscan() { |
| | | let that = this; |
| | | console.log("deviceInfo", this.deviceInfo) |
| | | if (this.deviceInfo?.brand.includes('alps')) { // 汉德霍尔设备特征 |
| | | |
| | | // const rfidModule = uni.requireNativePlugin('HandheldRFID'); |
| | | // console.log("rfidModule",rfidModule) |
| | | // rfidModule.initModule((res) => { |
| | | // console.log("rfid initModule", res) |
| | | // }) |
| | | } else { |
| | | var 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 = { |
| | | decodesource, |
| | | decodedata: decodedata || data, |
| | | decodelabeltype, |
| | | }; |
| | | console.log('onReceive', scanResult); |
| | | uni.$emit("scanresult", scanResult); |
| | | } |
| | | }); |
| | | |
| | | filter.addAction("com.pda.formobox"); //监听扫码广播 |
| | | filter.addAction('com.rfid.scan') // |
| | | main.registerReceiver(receiver, filter); //注册监听 |
| | | 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) { |
| | | console.log('onScan'); |
| | | if (this.deviceInfo?.brand.includes('alps')) { // 汉德霍尔设备特征 |
| | | // const rfidModule = uni.requireNativePlugin('HandheldRFID'); |
| | | // rfidModule.startScan((res) => { |
| | | // if (res.code) { |
| | | // console.log(res) |
| | | // let data = res.data || "" |
| | | // if (Array.isArray(data)) { |
| | | // data = data.map((a) => a.epc).join(",") |
| | | // } |
| | | // var scanResult = { |
| | | // decodesource: "epc", |
| | | // decodedata: data, |
| | | // decodelabeltype: "", |
| | | // }; |
| | | // console.log(scanResult) |
| | | // callback(scanResult); |
| | | // } else { |
| | | // console.log("rfid startScan", res) |
| | | // } |
| | | // }) |
| | | 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) => { |