guoyu/fronted_uniapp/App.vue

109 lines
3.2 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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')
console.log('✅ 图标字体已通过CSS @font-face加载')
// 设置状态栏高度 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 对象已可用')
console.log('✅ 图标字体通过CSS @font-face自动加载无需动态加载')
return
}
// 监听 plusready 事件
const checkPlus = () => {
if (typeof plus !== 'undefined') {
console.log('✅ plus 对象已初始化')
console.log('✅ 图标字体通过CSS @font-face自动加载无需动态加载')
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 默认 44pxAndroid 默认 24px转换为 rpx 约为 44rpx */
--status-bar-height: 44rpx;
}
</style>