From 619b47962e41f506baf7ce2b535b2de1fecc719e Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期四, 19 六月 2025 10:58:49 +0800 Subject: [PATCH] rfid扫描添加原生插件 --- App.vue | 245 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 213 insertions(+), 32 deletions(-) diff --git a/App.vue b/App.vue index 31d7308..c4feda8 100644 --- a/App.vue +++ b/App.vue @@ -1,48 +1,159 @@ <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() { + //鑾峰彇鍏ㄥ眬鍙傛暟锛歶rl-鏈嶅姟鍣ㄥ湴鍧�+ return { + + } + }, onLaunch: function() { console.log('App Launch'); - this.initscan(); + 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') }, - methods:{ - initscan(){ + onError(err) { + console.error('[UniApp Error]', err) + // 鍙笂鎶ュ埌鏈嶅姟鍣�+ }, + methods: { + + init() { let that = this; - var main = plus.android.runtimeMainActivity(), //鑾峰彇activity - IntentFilter = plus.android.importClass('android.content.IntentFilter'),//寮曞叆杩囨护鍣�- Intent = plus.android.importClass('android.content.Intent'), - filter = new IntentFilter(), - receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', { - onReceive: function(context, intent){//瀹炵幇onReceiver鍥炶皟鍑芥暟 - console.log('onReceive'); - var decodesource = intent.getStringExtra("com.symbol.datawedge.source"); + + 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 decodelabeltype = intent.getStringExtra("com.symbol.datawedge.label_type"); - - var scanResult={ - decodesource, - decodedata, - decodelabeltype - }; - uni.$emit("scanresult",scanResult); + 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");//鐩戝惉鎵爜骞挎挱 - main.registerReceiver(receiver, filter); //娉ㄥ唽鐩戝惉 + + filter.addAction("com.pda.formobox"); //鐩戝惉鎵爜骞挎挱 + filter.addAction('com.rfid.scan') // + main.registerReceiver(receiver, filter); //娉ㄥ唽鐩戝惉 }, - onScan(callback){ - console.log('onScan'); - uni.$off("scanresult"); - uni.$on("scanresult",(result)=>{ - callback(result); - }); - } + 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> @@ -53,7 +164,7 @@ @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-mobox/fm.css'; @import '@/fonts/font-sys/fs.css'; /*Mobox3鍥炬爣 */ @import '@/fonts/mobox-dms/style.css'; @@ -62,5 +173,75 @@ @import '@/fonts/mobox-plm/style.css'; @import '@/fonts/mobox-sys/style.css'; @import '@/fonts/mobox-wms/style.css'; - -</style> + + .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> \ No newline at end of file -- Gitblit v1.9.1