From b9473d5059c5bedd5aee40e242e87cc19f835db1 Mon Sep 17 00:00:00 2001 From: huazhongmin Date: Sat, 7 Mar 2026 18:27:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=BF=E6=8D=A2=E5=B7=B2=E5=BC=83?= =?UTF-8?q?=E7=94=A8=E7=9A=84=20getSystemInfoSync=20API=20=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=BB=E5=8A=A8=E7=AB=AF=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将所有 uni.getSystemInfoSync() 替换为新的推荐 API - uni.getDeviceInfo() 获取设备信息 - uni.getWindowInfo() 获取窗口信息 - uni.getAppBaseInfo() 获取应用基础信息 - 优化页面布局适配移动端小程序 - page 添加 height: 100% 和 overflow: hidden - 主页面使用 height: 100vh 替代 min-height - 移除滚动条显示(::-webkit-scrollbar) - 添加 flex-shrink: 0 防止卡片收缩 - 修复隐藏滚动条,提升移动端体验 Co-Authored-By: Claude Opus 4.6 --- mini-program/src/App.vue | 27 +++++++++++++-------- mini-program/src/components/MusicPlayer.vue | 5 ++-- mini-program/src/pages/login/index.vue | 9 ++++--- mini-program/src/pages/main/PathView.vue | 1 + mini-program/src/pages/main/RecordView.vue | 2 ++ mini-program/src/pages/main/ScriptView.vue | 1 + mini-program/src/pages/main/index.vue | 12 ++++++--- mini-program/src/pages/onboarding/index.vue | 7 +++--- mini-program/src/pages/profile/index.vue | 7 +++--- mini-program/src/pages/splash/index.vue | 7 +++--- 10 files changed, 49 insertions(+), 29 deletions(-) diff --git a/mini-program/src/App.vue b/mini-program/src/App.vue index bb33747..88c0b34 100644 --- a/mini-program/src/App.vue +++ b/mini-program/src/App.vue @@ -11,10 +11,15 @@ onLaunch(async () => { console.log('App Launch') const store = useAppStore() await store.initialize() - const systemInfo = uni.getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight || 20 - safeAreaTop.value = systemInfo.safeAreaInsets?.top || systemInfo.statusBarHeight || 20 - safeAreaBottom.value = systemInfo.safeAreaInsets?.bottom || 0 + + // 使用新的推荐 API 替代已弃用的 getSystemInfoSync + const deviceInfo = uni.getDeviceInfo() + const windowInfo = uni.getWindowInfo() + const appBaseInfo = uni.getAppBaseInfo() + + statusBarHeight.value = windowInfo.statusBarHeight || 20 + safeAreaTop.value = windowInfo.safeAreaInsets?.top || windowInfo.statusBarHeight || 20 + safeAreaBottom.value = windowInfo.safeAreaInsets?.bottom || 0 uni.setStorageSync('statusBarHeight', statusBarHeight.value) uni.setStorageSync('safeAreaTop', safeAreaTop.value) uni.setStorageSync('safeAreaBottom', safeAreaBottom.value) @@ -35,8 +40,9 @@ page { background-color: #0F071A; color: #F3E8FF; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - padding-top: 0; - padding-bottom: 0; + height: 100%; + overflow: hidden; + -webkit-overflow-scrolling: touch; } /* 星空背景 */ @@ -235,16 +241,17 @@ page { } ::-webkit-scrollbar { - width: 4rpx; + width: 0; + height: 0; + display: none; } ::-webkit-scrollbar-thumb { - background: rgba(168, 85, 247, 0.3); - border-radius: 10rpx; + background: transparent; } ::-webkit-scrollbar-track { - background: rgba(168, 85, 247, 0.05); + background: transparent; } @keyframes fadeIn { diff --git a/mini-program/src/components/MusicPlayer.vue b/mini-program/src/components/MusicPlayer.vue index b2d5d42..91ca666 100644 --- a/mini-program/src/components/MusicPlayer.vue +++ b/mini-program/src/components/MusicPlayer.vue @@ -57,8 +57,9 @@ const toggleMusic = async () => { } onMounted(() => { - const systemInfo = uni.getSystemInfoSync() - const safeAreaBottom = systemInfo.safeAreaInsets?.bottom || 0 + // 使用新的推荐 API 替代已弃用的 getSystemInfoSync + const windowInfo = uni.getWindowInfo() + const safeAreaBottom = windowInfo.safeAreaInsets?.bottom || 0 bottomPosition.value = `${safeAreaBottom + 96}px` }) diff --git a/mini-program/src/pages/login/index.vue b/mini-program/src/pages/login/index.vue index 5ac9ec2..0b6fff2 100644 --- a/mini-program/src/pages/login/index.vue +++ b/mini-program/src/pages/login/index.vue @@ -77,10 +77,11 @@ const safeAreaTop = ref(uni.getStorageSync('safeAreaTop') || 20) const safeAreaBottom = ref(uni.getStorageSync('safeAreaBottom') || 0) onMounted(() => { - const systemInfo = uni.getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight || 20 - safeAreaTop.value = systemInfo.safeAreaInsets?.top || systemInfo.statusBarHeight || 20 - safeAreaBottom.value = systemInfo.safeAreaInsets?.bottom || 0 + // 使用新的推荐 API 替代已弃用的 getSystemInfoSync + const windowInfo = uni.getWindowInfo() + statusBarHeight.value = windowInfo.statusBarHeight || 20 + safeAreaTop.value = windowInfo.safeAreaInsets?.top || windowInfo.statusBarHeight || 20 + safeAreaBottom.value = windowInfo.safeAreaInsets?.bottom || 0 }) const phone = ref('') diff --git a/mini-program/src/pages/main/PathView.vue b/mini-program/src/pages/main/PathView.vue index 901f4d2..504a493 100644 --- a/mini-program/src/pages/main/PathView.vue +++ b/mini-program/src/pages/main/PathView.vue @@ -96,6 +96,7 @@ onMounted(() => { display: flex; flex-direction: column; gap: 32rpx; + min-height: 100%; } .page-title { diff --git a/mini-program/src/pages/main/RecordView.vue b/mini-program/src/pages/main/RecordView.vue index 0082cd9..529cb87 100644 --- a/mini-program/src/pages/main/RecordView.vue +++ b/mini-program/src/pages/main/RecordView.vue @@ -122,10 +122,12 @@ onMounted(() => { display: flex; flex-direction: column; gap: 32rpx; + min-height: 100%; } .input-card { padding: 32rpx; + flex-shrink: 0; } .card-header { diff --git a/mini-program/src/pages/main/ScriptView.vue b/mini-program/src/pages/main/ScriptView.vue index 34d85ab..3e86a65 100644 --- a/mini-program/src/pages/main/ScriptView.vue +++ b/mini-program/src/pages/main/ScriptView.vue @@ -272,6 +272,7 @@ onMounted(async () => { display: flex; flex-direction: column; gap: 32rpx; + min-height: 100%; } .page-title { diff --git a/mini-program/src/pages/main/index.vue b/mini-program/src/pages/main/index.vue index ffca606..dfb67d7 100644 --- a/mini-program/src/pages/main/index.vue +++ b/mini-program/src/pages/main/index.vue @@ -124,9 +124,10 @@ const initStars = () => { } onMounted(() => { - const systemInfo = uni.getSystemInfoSync() - safeAreaTop.value = systemInfo.safeAreaInsets?.top || systemInfo.statusBarHeight || 20 - safeAreaBottom.value = systemInfo.safeAreaInsets?.bottom || 0 + // 使用新的推荐 API 替代已弃用的 getSystemInfoSync + const windowInfo = uni.getWindowInfo() + safeAreaTop.value = windowInfo.safeAreaInsets?.top || windowInfo.statusBarHeight || 20 + safeAreaBottom.value = windowInfo.safeAreaInsets?.bottom || 0 store.initialize() uni.$on('switchTab', switchTab) @@ -154,11 +155,12 @@ const goToProfile = () => {