<script setup lang="ts"> 
 | 
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app"; 
 | 
import { useThemeStore } from "@/store"; 
 | 
import { ref } from "vue"; 
 | 
  
 | 
// 主题初始化 
 | 
const themeStore = useThemeStore(); 
 | 
  
 | 
// 全局扫码广播接收器 
 | 
let main: any = null; 
 | 
let receiver: any = null; 
 | 
let filter: any = null; 
 | 
  
 | 
// 初始化扫码广播接收 
 | 
const initGlobalScan = () => { 
 | 
  // #ifdef APP-PLUS 
 | 
  try { 
 | 
    main = plus.android.runtimeMainActivity(); 
 | 
    const IntentFilter = plus.android.importClass("android.content.IntentFilter"); 
 | 
    filter = new IntentFilter(); 
 | 
    filter.addAction("com.dwexample.ACTION"); 
 | 
     
 | 
    receiver = plus.android.implements("io.dcloud.feature.internal.reflect.BroadcastReceiver", { 
 | 
      onReceive: (context: any, intent: any) => { 
 | 
        console.log("🔍 [全局Scan] onReceive 触发:", context, intent); 
 | 
        plus.android.importClass(intent); 
 | 
        const scanResult = intent.getStringExtra("com.motorolasolutions.emdk.datawedge.data_string"); 
 | 
        console.log("🔍 [全局Scan] 扫描结果:", scanResult); 
 | 
         
 | 
        // 发送到所有可能的事件 
 | 
        const eventNames = ["scan", "scanIndex", "scanJX", "scanLS"]; 
 | 
        eventNames.forEach((eventName) => { 
 | 
          uni.$emit(eventName, { code: scanResult }); 
 | 
          console.log(`🔍 [全局Scan] 已发送 ${eventName} 事件`); 
 | 
        }); 
 | 
      }, 
 | 
    }); 
 | 
     
 | 
    // 注册广播接收器 
 | 
    main.registerReceiver(receiver, filter); 
 | 
    console.log("🔍 [全局Scan] 全局扫码广播接收器已启动"); 
 | 
  } catch (error) { 
 | 
    console.error("🔍 [全局Scan] 初始化失败:", error); 
 | 
  } 
 | 
  // #endif 
 | 
}; 
 | 
  
 | 
// 停止扫码广播接收 
 | 
const stopGlobalScan = () => { 
 | 
  // #ifdef APP-PLUS 
 | 
  try { 
 | 
    if (main && receiver) { 
 | 
      main.unregisterReceiver(receiver); 
 | 
      console.log("🔍 [全局Scan] 全局扫码广播接收器已停止"); 
 | 
    } 
 | 
  } catch (error) { 
 | 
    console.error("🔍 [全局Scan] 停止失败:", error); 
 | 
  } 
 | 
  // #endif 
 | 
}; 
 | 
  
 | 
onLaunch(() => { 
 | 
  console.log("App Launch"); 
 | 
  // 初始化主题 
 | 
  themeStore.initTheme(); 
 | 
  // 初始化全局扫码广播接收器 
 | 
  initGlobalScan(); 
 | 
}); 
 | 
  
 | 
onShow(() => { 
 | 
  console.log("App Show"); 
 | 
  // 应用显示时重新启动广播接收器 
 | 
  initGlobalScan(); 
 | 
}); 
 | 
  
 | 
onHide(() => { 
 | 
  console.log("App Hide"); 
 | 
  // 应用隐藏时不停止广播(保持后台接收) 
 | 
}); 
 | 
</script> 
 | 
  
 | 
<style lang="scss"> 
 | 
:root { 
 | 
  --primary-color: #165dff; 
 | 
  --primary-color-light: #94bfff; 
 | 
  --primary-color-dark: #0e3c9b; 
 | 
} 
 | 
  
 | 
page { 
 | 
  background: #f8f8f8; 
 | 
} 
 | 
</style> 
 |