From b4a14804f37d0d715af1f00ccb9e1621d238cc58 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期四, 15 一月 2026 11:33:03 +0800
Subject: [PATCH] 异常处理
---
App.vue | 149 +++++++++++++++++++++++++++++++++++--------------
1 files changed, 107 insertions(+), 42 deletions(-)
diff --git a/App.vue b/App.vue
index beab781..9e4f913 100644
--- a/App.vue
+++ b/App.vue
@@ -9,44 +9,96 @@
// #ifdef APP-PLUS
// 鍏ㄥ眬鍒濆鍖朢FID妯″潡锛堝簲鐢ㄥ惎鍔ㄦ椂鍒濆鍖栵紝鍏抽棴app鏃跺叧闂級
- console.log('[App] 鍒濆鍖朢FID妯″潡...');
- const uhfModel = uni.requireNativePlugin("iData-UHFPlugin-UHFModule");
- const globalEvent = uni.requireNativePlugin('globalEvent');
- const modal = uni.requireNativePlugin('modal');
+ // 娉ㄦ剰锛歊FID鍒濆鍖栭噰鐢ㄥ紓姝ユ柟寮忥紝涓嶉樆濉為〉闈㈠姞杞�
+ // 鍗充娇RFID鍒濆鍖栧け璐ワ紝涔熶笉褰卞搷椤甸潰姝e父浣跨敤
+ console.log('[App] 寮�濮嬪紓姝ュ垵濮嬪寲RFID妯″潡锛堜笉闃诲椤甸潰鍔犺浇锛�...');
- if (!uhfModel) {
- console.error('[App] RFID鎻掍欢鏈壘鍒�');
- } else {
- // 鐩戝惉涓婄數浜嬩欢
- let isPowerOn = false;
- globalEvent.addEventListener('POWEREvent', function(e) {
- console.log('[App] POWEREvent:', JSON.stringify(e));
- if (e && e.status === 'connected') {
- isPowerOn = true;
- console.log('[App] 鉁撯湏鉁� RFID妯″潡宸蹭笂鐢垫垚鍔燂紒');
- } else {
- isPowerOn = false;
- console.log('[App] 鉁� RFID妯″潡鏈笂鐢�');
+ // 浣跨敤setTimeout纭繚涓嶉樆濉炰富绾跨▼
+ setTimeout(() => {
+ try {
+ const uhfModel = uni.requireNativePlugin("iData-UHFPlugin-UHFModule");
+ const globalEvent = uni.requireNativePlugin('globalEvent');
+ const modal = uni.requireNativePlugin('modal');
+
+ if (!uhfModel) {
+ console.warn('[App] 鈿� RFID鎻掍欢鏈壘鍒帮紝椤甸潰鍙甯镐娇鐢紙RFID鍔熻兘涓嶅彲鐢級');
+ return;
}
- });
-
- // 鍒濆鍖朢FID妯″潡锛堜娇鐢⊿LR妯″潡锛屼笌娴嬭瘯椤甸潰涓�鑷达級
- uhfModel.initUHF(1, (ret) => {
- console.log('[App] initUHF result:', ret);
- if (ret && typeof ret === 'string' && ret.includes('success')) {
- console.log('[App] 鉁� RFID妯″潡鍒濆鍖栨垚鍔�');
- } else {
- console.warn('[App] 鈿� RFID妯″潡鍒濆鍖栧け璐�:', ret);
+
+ // 鐩戝惉涓婄數浜嬩欢
+ let isPowerOn = false;
+ const powerEventHandler = function(e) {
+ console.log('[App] POWEREvent:', JSON.stringify(e));
+ if (e && e.status === 'connected') {
+ isPowerOn = true;
+ console.log('[App] 鉁撯湏鉁� RFID妯″潡宸蹭笂鐢垫垚鍔燂紒');
+ } else {
+ isPowerOn = false;
+ console.log('[App] 鉁� RFID妯″潡鏈笂鐢�');
+ }
+ };
+ globalEvent.addEventListener('POWEREvent', powerEventHandler);
+
+ // 淇濆瓨浜嬩欢澶勭悊鍣ㄥ紩鐢紝鐢ㄤ簬娓呯悊
+ this.powerEventHandler = powerEventHandler;
+
+ // 璁剧疆瓒呮椂鏈哄埗锛氬鏋�10绉掑唴娌℃湁鍒濆鍖栨垚鍔燂紝鍏佽椤甸潰缁х画浣跨敤
+ const initTimeout = setTimeout(() => {
+ console.warn('[App] 鈿� RFID妯″潡鍒濆鍖栬秴鏃讹紙10绉掞級锛岄〉闈㈠彲姝e父浣跨敤锛圧FID鍔熻兘鍙兘涓嶅彲鐢級');
+ if (modal) {
+ modal.toast({
+ message: 'RFID鍒濆鍖栬秴鏃讹紝椤甸潰鍙甯镐娇鐢�',
+ duration: 2
+ });
+ }
+ }, 10000); // 10绉掕秴鏃�
+
+ // 鍒濆鍖朢FID妯″潡锛堜娇鐢⊿LR妯″潡锛屼笌娴嬭瘯椤甸潰涓�鑷达級
+ try {
+ uhfModel.initUHF(1, (ret) => {
+ clearTimeout(initTimeout); // 娓呴櫎瓒呮椂瀹氭椂鍣�
+ console.log('[App] initUHF result:', ret);
+ if (ret && typeof ret === 'string' && ret.includes('success')) {
+ console.log('[App] 鉁� RFID妯″潡鍒濆鍖栨垚鍔�');
+ } else {
+ console.warn('[App] 鈿� RFID妯″潡鍒濆鍖栧け璐�:', ret);
+ if (modal) {
+ modal.toast({
+ message: 'RFID鍒濆鍖栧け璐ワ紝椤甸潰鍙甯镐娇鐢�',
+ duration: 2
+ });
+ }
+ }
+ });
+ } catch (initError) {
+ clearTimeout(initTimeout); // 娓呴櫎瓒呮椂瀹氭椂鍣�
+ console.error('[App] 鈿� RFID妯″潡鍒濆鍖栧紓甯�:', initError);
+ console.warn('[App] 鈿� 椤甸潰鍙甯镐娇鐢紙RFID鍔熻兘涓嶅彲鐢級');
+ if (modal) {
+ modal.toast({
+ message: 'RFID鍒濆鍖栧紓甯革紝椤甸潰鍙甯镐娇鐢�',
+ duration: 2
+ });
+ }
}
- });
-
- // 淇濆瓨寮曠敤锛岀敤浜巓nExit鏃跺叧闂�
- this.uhfModel = uhfModel;
- this.globalEvent = globalEvent;
- }
+
+ // 淇濆瓨寮曠敤锛岀敤浜巓nExit鏃跺叧闂�
+ this.uhfModel = uhfModel;
+ this.globalEvent = globalEvent;
+ } catch (error) {
+ console.error('[App] 鈿� RFID妯″潡鍒濆鍖栬繃绋嬪嚭閿�:', error);
+ console.warn('[App] 鈿� 椤甸潰鍙甯镐娇鐢紙RFID鍔熻兘涓嶅彲鐢級');
+ }
+ }, 100); // 寤惰繜100ms鎵ц锛岀‘淇濅笉闃诲椤甸潰鍔犺浇
// 鍚姩鍏ㄥ眬RFID杈撳叆鍔╂墜锛堢敤浜庤嚜鍔ㄥ~鍏ヨ緭鍏ユ锛�
- startRFIDInputHelper();
+ // 浣跨敤try-catch纭繚鍗充娇RFID鍔╂墜鍚姩澶辫触涔熶笉褰卞搷椤甸潰
+ try {
+ startRFIDInputHelper();
+ } catch (error) {
+ console.error('[App] 鈿� RFID杈撳叆鍔╂墜鍚姩澶辫触:', error);
+ console.warn('[App] 鈿� 椤甸潰鍙甯镐娇鐢紙RFID鎵弿鍔熻兘涓嶅彲鐢級');
+ }
// #endif
// 娉ㄦ剰锛氫互涓嬩唬鐮佸凡搴熷純锛屾敼涓轰笂闈㈢殑鍏ㄥ眬鍒濆鍖栨柟寮�
@@ -348,16 +400,29 @@
onExit: function() {
console.log('App Exit')
// #ifdef APP-PLUS
- // 鍋滄鍏ㄥ眬RFID杈撳叆鍔╂墜
- stopRFIDInputHelper();
-
- // 鍏抽棴RFID妯″潡
- if (this.uhfModel && this.uhfModel.closeUHF) {
- this.uhfModel.closeUHF();
- console.log('[App] 鉁� RFID妯″潡宸插叧闂�');
+ // 鍋滄鍏ㄥ眬RFID杈撳叆鍔╂墜锛堜娇鐢╰ry-catch纭繚鍗充娇澶辫触涔熶笉褰卞搷閫�鍑猴級
+ try {
+ stopRFIDInputHelper();
+ } catch (e) {
+ console.warn('[App] 鈿� 鍋滄RFID杈撳叆鍔╂墜澶辫触:', e);
}
- if (this.globalEvent) {
- this.globalEvent.removeEventListener('POWEREvent');
+
+ // 鍏抽棴RFID妯″潡锛堜娇鐢╰ry-catch纭繚鍗充娇澶辫触涔熶笉褰卞搷閫�鍑猴級
+ try {
+ if (this.uhfModel && this.uhfModel.closeUHF) {
+ this.uhfModel.closeUHF();
+ console.log('[App] 鉁� RFID妯″潡宸插叧闂�');
+ }
+ } catch (e) {
+ console.warn('[App] 鈿� 鍏抽棴RFID妯″潡澶辫触:', e);
+ }
+
+ try {
+ if (this.globalEvent && this.powerEventHandler) {
+ this.globalEvent.removeEventListener('POWEREvent', this.powerEventHandler);
+ }
+ } catch (e) {
+ console.warn('[App] 鈿� 绉婚櫎POWEREvent鐩戝惉澶辫触:', e);
}
// #endif
}
--
Gitblit v1.9.1