<script>
	import config from '@/utils/config.js'
	
	const APP_DEV_HOST = '192.168.1.164'
	const APP_DEV_PORT = 30091
	
	export default {
		onLaunch: function() {
			console.log('App Launch')
			// 设置状态栏高度 CSS 变量
			this.setStatusBarHeight()
			
		// App环境：配置服务器地址（生产环境使用生产服务器）
		// #ifdef APP-PLUS
		// 强制使用新的服务器地址 192.168.1.164
		const PROD_HOST = '192.168.1.164'
		const PROD_PORT = 30091
		
		// 无条件强制更新配置（清除旧配置）
		console.log(`🔄 强制更新服务器地址为：${PROD_HOST}:${PROD_PORT}`)
		config.setServerConfig(PROD_HOST, PROD_PORT)
		
		// 验证配置是否生效
		const { serverHost, serverPort } = config.getServerConfig()
		console.log(`✅ 当前服务器地址：${serverHost}:${serverPort}`)
		console.log(`✅ FILE_BASE_URL: ${config.FILE_BASE_URL}`)
			
			// 等待 plus 对象初始化
			this.waitForPlusReady()
			// #endif
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			setStatusBarHeight() {
				try {
					const systemInfo = uni.getSystemInfoSync()
					const statusBarHeight = systemInfo.statusBarHeight || 0
					// 将状态栏高度转换为 rpx（假设设计稿宽度为 750rpx）
					const statusBarHeightRpx = (statusBarHeight * 750) / systemInfo.windowWidth
					
					// #ifdef H5
					// H5 环境：设置 CSS 变量
					if (typeof document !== 'undefined') {
						document.documentElement.style.setProperty('--status-bar-height', statusBarHeightRpx + 'rpx')
					}
					// #endif
					
					// #ifdef APP-PLUS
					// APP 环境：uni-app 会自动处理，但也可以手动设置
					// 这里主要确保变量有默认值
					// #endif
					
					console.log('状态栏高度:', statusBarHeight, 'rpx:', statusBarHeightRpx)
				} catch (e) {
					console.error('获取状态栏高度失败:', e)
				}
			},
			// #ifdef APP-PLUS
			waitForPlusReady() {
				// 检查 plus 对象是否已可用
				if (typeof plus !== 'undefined') {
					console.log('✅ App启动时 plus 对象已可用')
					return
				}
				
				// 监听 plusready 事件
				// 注意：在 App 环境中，可能需要使用 window.addEventListener
				const checkPlus = () => {
					if (typeof plus !== 'undefined') {
						console.log('✅ plus 对象已初始化')
						return
					}
					// 继续等待
					setTimeout(checkPlus, 100)
				}
				
				// 开始检查
				setTimeout(checkPlus, 100)
				
				// 如果 5 秒后仍未初始化，输出警告
				setTimeout(() => {
					if (typeof plus === 'undefined') {
						console.warn('⚠️ App启动5秒后 plus 对象仍未初始化')
						console.warn('⚠️ 这可能会影响截图功能')
					}
				}, 5000)
			}
			// #endif
		}
	}
</script>

<style>
	/*每个页面公共css */
	page {
		/* 默认状态栏高度，如果 JavaScript 设置失败则使用此值 */
		/* iOS 默认 44px，Android 默认 24px，转换为 rpx 约为 44rpx */
		--status-bar-height: 44rpx;
	}
</style>
