<template>
	<view class="content"></view>
</template>

<script lang="ts" setup>
	import {
		onLoad,
		onShow,
		onHide,
		onUnload
	} from '@dcloudio/uni-app'
	// import { storeToRefs } from 'pinia';
	import {
		reactive,
		defineProps
	} from "vue";
	// import usePdaStore from '../store/uaePdaStore';
	// const pdaStore = usePdaStore()
	// const { pdaBroadcas } = storeToRefs(pdaStore)
	let details = reactive({
		activity: null,
		receiver: null,
		intentFilter: null,
		isstart: false,

	})
	const props = defineProps<{ ishidestop ?: boolean }>()
	onLoad(() => {
		initScan()
		startScan();
		// console.log('扫描的--------------onLoad');
	})
	onShow(() => {
		startScan();
		// console.log('扫描的--------------onShow');
	})
	onHide(() => {
		if (props?.ishidestop) return
		stopScan();
		console.log('扫描的--------------onHide');
	})
	onUnload(() => {
		stopScan();
		uni.$off('scancodedate')
		// console.log('扫描的--------------onUnload');
	})

	// uni.getSystemInfoSync().deviceBrand
	function initScan() {
		const pdaBroadcastList = {
			'seuic': {
				// 广播动作
				broadcastAction: 'com.android.server.scannerservice.broadcast',
				// 广播标签
				broadcastTag: 'scannerdata'
			},
			'ubx': {
				// 广播动作
				broadcastAction: 'android.intent.ACTION_DECODE_DATA',
				// 广播标签
				broadcastTag: 'barcode_string'
			}
		}
		// #ifdef APP
		console.log('广播')
		if (plus) {
			console.log('getDeviceBrand() :>> ', uni.getSystemInfoSync());
			const { brand } = uni.getSystemInfoSync()
			console.log('进入')
			details.activity = plus.android.runtimeMainActivity(); //获取activity
			console.log('details.activity :>> ', details.activity);
			var IntentFilter = (plus.android.importClass('android.content.IntentFilter') as any);
			// console.log('IntentFilter :>> ', IntentFilter);
			details.intentFilter = new IntentFilter();
			// 检测PDA厂家信息, 配置不同的广播动作
			details.intentFilter.addAction(pdaBroadcastList[brand].broadcastAction) // 换你的广播动作
			// details.intentFilter.addAction('com.android.server.scannerservice.broadcast') // 换你的广播动作
			details.receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
				onReceive: function (context, intent) {
					console.log('111 :>> ', 111);
					console.log("intent", intent)
					plus.android.importClass(intent);
					// Pinia控制广播标签
					let content = intent.getStringExtra(pdaBroadcastList[brand].broadcastTag); // 换你的广播标签 
					// let content = intent.getStringExtra('scannerdata'); // 换你的广播标签 
					uni.$emit('scancodedate', content.replace(/\n/g, ""))
				}
			});
		}
		// #endif
	}

	function startScan() {
		// #ifdef APP
		if (details.isstart) return
		details.isstart = true
		details.activity.registerReceiver(details.receiver, details.intentFilter);
		// #endif
	}
	function stopScan() {
		// #ifdef APP
		details.isstart = false
		details.activity.unregisterReceiver(details.receiver);
		// #endif
	}
</script>

<style>
</style>