106 lines
3.0 KiB
Vue
106 lines
3.0 KiB
Vue
<script>
|
||
import config from '@/utils/config.js'
|
||
|
||
const APP_DEV_HOST = '192.168.1.80'
|
||
const APP_DEV_PORT = 30091
|
||
|
||
export default {
|
||
onLaunch: function() {
|
||
console.log('App Launch')
|
||
// 设置状态栏高度 CSS 变量
|
||
this.setStatusBarHeight()
|
||
|
||
// App环境:配置服务器地址(生产环境使用生产服务器)
|
||
// #ifdef APP-PLUS
|
||
// 强制使用新的服务器地址 192.168.1.80
|
||
const PROD_HOST = '192.168.1.80'
|
||
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>
|