fix: 尝试安卓优化
This commit is contained in:
@@ -271,7 +271,7 @@
|
||||
<div v-reveal="{ variant: 'scale', delay: 120 }" class="w-full max-w-[260px] aspect-[3/4] relative z-10">
|
||||
<div class="absolute inset-0 border border-[#a88c6b] translate-x-3 translate-y-3 opacity-30"></div>
|
||||
<div class="relative w-full h-full z-10 bg-[#F7F6F2] shadow-md overflow-hidden">
|
||||
<img :src="data.heroImg" class="w-full h-full object-cover" fetchpriority="high" decoding="async" alt="封面" />
|
||||
<img :src="optimizeImageUrl(data.heroImg)" class="w-full h-full object-cover" fetchpriority="high" decoding="async" alt="封面" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -613,7 +613,7 @@
|
||||
|
||||
<a-image-preview-group :preview="albumPreviewOptions">
|
||||
<div class="album-preview-registry" aria-hidden="true">
|
||||
<a-image v-for="(src, idx) in albumPreviewImages" :key="`${src}-${idx}`" :src="src" />
|
||||
<a-image v-for="(src, idx) in albumPreviewImages" :key="`${src}-${idx}`" :src="src" :preview="false" />
|
||||
</div>
|
||||
</a-image-preview-group>
|
||||
|
||||
@@ -628,6 +628,7 @@ import { toast } from '@/composables/useToast'
|
||||
import { pickMusicUrl, rememberMusicPick } from '@/utils/musicPick'
|
||||
import { getClientId } from '@/utils/clientId'
|
||||
import { sendVisitBeacon } from '@/utils/visitBeacon'
|
||||
import { optimizeImageUrl } from '@/composables/useAndroidOptimize'
|
||||
import { DANMAKU_COLORS, DANMAKU_GRADIENT_COLORS, DEFAULT_DANMAKU_COLOR, BLESSING_STYLES } from '@/utils/danmakuColors'
|
||||
import { parseLrc, formatAudioTime, findLrcIndex } from '@/utils/parseLrc'
|
||||
import CanvasEffects from '@/components/CanvasEffects.vue'
|
||||
@@ -818,8 +819,8 @@ const firstScreenDuration = computed(() => {
|
||||
return v >= 0 && v <= 30000 ? v : 4500
|
||||
})
|
||||
|
||||
const curtainBg = computed(() => ({ backgroundImage: `url(${data.value.heroImg})` }))
|
||||
const endImage = computed(() => data.value.endImg || data.value.heroImg)
|
||||
const curtainBg = computed(() => ({ backgroundImage: `url(${optimizeImageUrl(data.value.heroImg)})` }))
|
||||
const endImage = computed(() => optimizeImageUrl(data.value.endImg || data.value.heroImg))
|
||||
const introExitClass = computed(() => {
|
||||
const effect = ['wind', 'book', 'lift', 'doors'].includes(data.value.introExitEffect) ? data.value.introExitEffect : 'wind'
|
||||
return `intro-exit-${effect}`
|
||||
@@ -871,7 +872,7 @@ const normalizeImages = (images = []) => {
|
||||
const seen = new Set()
|
||||
return images
|
||||
.filter((src) => typeof src === 'string' && src.trim())
|
||||
.map((src) => src.trim())
|
||||
.map((src) => optimizeImageUrl(src.trim()))
|
||||
.filter((src) => {
|
||||
if (seen.has(src)) return false
|
||||
seen.add(src)
|
||||
@@ -1318,13 +1319,28 @@ onMounted(async () => {
|
||||
loaded.formalPageHeight = loaded.formalPageHeight || DEFAULTS.formalPageHeight
|
||||
loaded.calendarDate = loaded.calendarDate || DEFAULTS.calendarDate
|
||||
loaded.introExitEffect = loaded.introExitEffect || DEFAULTS.introExitEffect
|
||||
// 安卓专项:OSS 图统一压缩为 750px webp(iOS 不受影响)
|
||||
if (loaded.heroImg) loaded.heroImg = optimizeImageUrl(loaded.heroImg)
|
||||
if (loaded.endImg) loaded.endImg = optimizeImageUrl(loaded.endImg)
|
||||
if (Array.isArray(loaded.photoPages)) {
|
||||
loaded.photoPages = loaded.photoPages.map((p) => {
|
||||
if (!p) return p
|
||||
const next = { ...p }
|
||||
if (next.img1) next.img1 = optimizeImageUrl(next.img1)
|
||||
if (next.img2) next.img2 = optimizeImageUrl(next.img2)
|
||||
if (Array.isArray(next.images)) next.images = next.images.map((u) => optimizeImageUrl(u))
|
||||
return next
|
||||
})
|
||||
}
|
||||
data.value = { ...data.value, ...DEFAULTS, ...loaded }
|
||||
}
|
||||
} catch (e) { /* 使用默认配置 */ }
|
||||
|
||||
syncPageScrollMode()
|
||||
albumLoaded.value = false
|
||||
albumPreviewImages.value = localAlbumImages()
|
||||
// 安卓专项:不在首屏预挂载整本相册,避免 <a-image> 全量创建导致主线程卡顿
|
||||
// 改为用户首次点开预览时再加载(loadAlbumPreviewImages 内部有缓存保护)
|
||||
albumPreviewImages.value = []
|
||||
loadLikeStatus()
|
||||
sendVisitBeacon()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user