| | |
| | | /** |
| | | * 初始化RFID助手(只初始化插件引用和事件监听,不初始化RFID模块) |
| | | * RFID模块由App.vue全局初始化,这里只负责监听按键和读取标签 |
| | | * 注意:即使初始化失败,也不抛出异常,确保不影响页面使用 |
| | | */ |
| | | function initRFIDForInput() { |
| | | try { |
| | |
| | | modal = uni.requireNativePlugin('modal'); |
| | | |
| | | if (!uhfModel) { |
| | | console.warn('[RFIDInputHelper] RFID插件未找到'); |
| | | console.warn('[RFIDInputHelper] ⚠ RFID插件未找到,RFID扫描功能不可用,但页面可正常使用'); |
| | | return false; |
| | | } |
| | | |
| | | // 监听上电事件(监听全局上电状态,RFID模块由App.vue初始化) |
| | | globalEvent.addEventListener('POWEREvent', function(e) { |
| | | console.log('[RFIDInputHelper] POWEREvent:', JSON.stringify(e)); |
| | | if (e && e.status === 'connected') { |
| | | isPowerOn = true; |
| | | console.log('[RFIDInputHelper] ✓ RFID模块已上电'); |
| | | } else { |
| | | isPowerOn = false; |
| | | console.log('[RFIDInputHelper] ✗ RFID模块未上电'); |
| | | } |
| | | }); |
| | | try { |
| | | globalEvent.addEventListener('POWEREvent', function(e) { |
| | | console.log('[RFIDInputHelper] POWEREvent:', JSON.stringify(e)); |
| | | if (e && e.status === 'connected') { |
| | | isPowerOn = true; |
| | | console.log('[RFIDInputHelper] ✓ RFID模块已上电'); |
| | | } else { |
| | | isPowerOn = false; |
| | | console.log('[RFIDInputHelper] ✗ RFID模块未上电'); |
| | | } |
| | | }); |
| | | } catch (eventError) { |
| | | console.warn('[RFIDInputHelper] ⚠ 添加POWEREvent监听失败:', eventError); |
| | | console.warn('[RFIDInputHelper] ⚠ RFID扫描功能可能不可用,但页面可正常使用'); |
| | | } |
| | | |
| | | // 注意:RFID模块由App.vue在onLaunch时全局初始化 |
| | | // 这里只负责监听按键和读取标签,不初始化RFID模块 |
| | | |
| | | return true; |
| | | } catch (error) { |
| | | console.error('[RFIDInputHelper] 初始化失败:', error); |
| | | console.error('[RFIDInputHelper] ⚠ 初始化失败:', error); |
| | | console.warn('[RFIDInputHelper] ⚠ RFID扫描功能不可用,但页面可正常使用'); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | * 读取RFID标签(单标签读,无过滤) |
| | | */ |
| | | function readRFIDTag() { |
| | | if (!uhfModel) { |
| | | // 如果模块未初始化,尝试初始化 |
| | | uhfModel = uni.requireNativePlugin("iData-UHFPlugin-UHFModule"); |
| | | try { |
| | | if (!uhfModel) { |
| | | console.warn('[RFIDInputHelper] RFID模块未找到'); |
| | | modal.toast({ |
| | | message: 'RFID模块未找到', |
| | | duration: 1.5 |
| | | }); |
| | | // 如果模块未初始化,尝试初始化 |
| | | try { |
| | | uhfModel = uni.requireNativePlugin("iData-UHFPlugin-UHFModule"); |
| | | } catch (e) { |
| | | console.warn('[RFIDInputHelper] ⚠ RFID模块未找到:', e); |
| | | } |
| | | if (!uhfModel) { |
| | | console.warn('[RFIDInputHelper] RFID模块未找到'); |
| | | if (modal) { |
| | | modal.toast({ |
| | | message: 'RFID模块未找到', |
| | | duration: 1.5 |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 检查RFID是否已上电(RFID模块由App.vue全局初始化) |
| | | if (!isPowerOn) { |
| | | console.warn('[RFIDInputHelper] RFID未上电,无法扫描'); |
| | | if (modal) { |
| | | modal.toast({ |
| | | message: 'RFID正在上电,请稍候...', |
| | | duration: 1.5 |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 检查RFID是否已上电(RFID模块由App.vue全局初始化) |
| | | if (!isPowerOn) { |
| | | modal.toast({ |
| | | message: 'RFID正在上电,请稍候...', |
| | | duration: 1.5 |
| | | }); |
| | | } catch (error) { |
| | | console.error('[RFIDInputHelper] ⚠ 读取RFID标签前检查失败:', error); |
| | | console.warn('[RFIDInputHelper] ⚠ RFID扫描功能不可用,但页面可正常使用'); |
| | | if (modal) { |
| | | modal.toast({ |
| | | message: 'RFID扫描功能不可用', |
| | | duration: 1.5 |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | |