WhatsApp 網頁版本質上是一個以 JavaScript 構建的單頁應用(SPA),其效能與穩定性高度依賴瀏覽器對現代 Web API 的實作程度。多數使用者只關心「能不能開啟」,但開發者更需留意渲染管線中的細微差異,這些差異往往導致通知延遲、貼圖貼上失敗或檔案下載中斷。
瀏覽器引擎與 WebRTC 支援度
WhatsApp 網頁版通話功能依賴 WebRTC,而各瀏覽器對 WebRTC 的編碼器支援不一。Chrome 與 Edge 使用 libvpx 與 VP9,Firefox 則偏好 AV1,Safari 在 macOS 14 後才完整支援 VP9 硬體解碼。若通話連線不穩,可先在 chrome://webrtc-internals 或 about:webrtc 檢查封包遺失率。多數情況下,關閉瀏覽器的「硬體加速」能緩解部分畫面撕裂問題,但會增加 CPU 占用約 15%~25%。
通知權限的觸發時機與持續性
Chrome 要求使用者手勢(點擊)後才能請求通知權限,且若使用者曾封鎖,網址列左側的鎖頭圖示不會主動提示。Edge 則在網址列右側提供鈴鐺圖示快速管理。Firefox 的通知權限與容器分頁(Container Tabs)綁定,若在容器中開啟 WhatsApp 網頁版,需單獨授權。Safari 自 16.4 版起支援 Web Push,但僅限已加入主畫面的 PWA,純網頁模式無法接收背景通知。
剪貼簿 API 與貼圖格式限制
貼上圖片時,Chrome 與 Edge 支援 navigator.clipboard.read() 直接讀取 PNG 與 JPEG,但 WebP 格式在部分版本會被忽略。Firefox 需在 about:config 將 dom.events.asyncClipboard.read 設為 true 才能完整支援。Safari 對剪貼簿的讀取限制最嚴格,僅允許 text/plain 與 image/png,且必須在使用者手勢的同步呼叫堆疊中執行,否則會拋出 NotAllowedError。若貼圖失敗,可先將圖片另存為 PNG 再拖曳上傳。
檔案下載與儲存路徑控制
WhatsApp 網頁版下載檔案時使用 Blob URL 與 <a download> 屬性。Chrome 預設下載至「下載」資料夾,可透過 chrome://settings/downloads 開啟「下載前詢問儲存位置」。Edge 的路徑設定位於 edge://settings/downloads。Firefox 在 about:preferences 的「檔案與應用程式」中可設定每次詢問。Safari 則固定儲存至「下載」資料夾,無法逐次詢問,但可在 Safari > 設定 > 網站 > 下載項目 中調整權限。
硬體加速與圖形驅動的交互影響
啟用硬體加速可讓 WhatsApp 網頁版的捲動與影片播放更流暢,但老舊的顯示驅動可能導致畫面黑屏。Chrome 與 Edge 可在 chrome://gpu 檢視「Compositing」是否為「Hardware accelerated」。若出現「Software only」,可嘗試更新顯卡驅動,或在 chrome://flags 搜尋 ignore-gpu-blocklist 並啟用。Firefox 的 about:support 頁面會列出「WebRender」狀態,若顯示「Software」,可將 gfx.webrender.software 設為 true 強制軟體渲染。Safari 的硬體加速由系統管理,無法單獨關閉,但可在「開發」選單中啟用「停用 GPU 繪製」進行除錯。
儲存空間與 IndexedDB 配額
WhatsApp 網頁版會將部分訊息快取於 IndexedDB,各瀏覽器配額不同。Chrome 與 Edge 允許每個來源使用最多 60% 的磁碟空間(依總容量動態調整),Firefox 預設為 10% 或 10GB(取較小值),Safari 則限制較嚴,約 1GB 左右。若快取寫入失敗,訊息列表可能無法載入。可在開發者工具的「Application > Storage」中檢視用量,必要時清除網站資料並重新掃描 QR Code。