0/8
前陣子遇到一個怪問題:首頁影片明明寫了 autoplay、muted、playsinline,在某些人的 iPhone 上就是不會自動播放。查了很久才發現,原因是對方開了省電模式。
這些都是前端常見的寫法,程式其實沒寫錯,是手機的設定改變了網頁的行為。整理了 5 個 iPhone 上很容易被誤認成 bug 的情況:
- 省電模式:影片不會自動播放,連 JS 的 play() 都會失敗
- 省電模式:requestAnimationFrame 和 CSS 動畫都被限制在 30 fps
- 減少動態:使用者開了這個輔助設定,動畫套件會自動停用
- 切到背景:計時器變慢、動畫暫停,倒數計時就對不上了
- Safari 的追蹤防護:7 天沒在網站互動,localStorage 等資料會被清空
這些都是瀏覽器刻意的設計,網頁端關不掉,能做的是「被限制了也要好看、資料也要對」。每一項的解法和測試清單都在圖裡。