technine.io
一隻戴着橙黑色錶帶的手,拿着螢幕全白的智能手機,背景是印有白色格線的藍色切割墊,畫面沒有文字或標誌。

指南

甚麼是漸進式網頁應用程式(PWA)?

PWA 是可以安裝、離線使用,並在支援的裝置上發送通知的網站。了解它與一般網站和原生 App 的分別、實際限制,以及委託開發前應檢查甚麼。

更新於

漸進式網頁應用程式(Progressive Web App,PWA)是以標準網頁技術建立的網站,亦可像已安裝的 App 一樣運作:可以放在主畫面、在獨立視窗開啟、離線時保留主要畫面,並在支援的裝置上發送通知。對正在比較網站、PWA 和原生 App 的香港中小企而言,PWA 介乎兩者之間:一套網頁程式碼,加上類似 App 的功能。

網站要具備甚麼才算 PWA

  • Web app manifest:一個簡短的 JSON 檔案,設定 App 的名稱、圖示、起始頁和顯示模式,例如開啟時不顯示瀏覽器網址列。
  • Service worker:瀏覽器在網頁以外另行執行的腳本,可以攔截網絡請求、快取檔案,在網絡緩慢或中斷時作出回應,也負責處理推送訊息。
  • 離線快取:選定的頁面和資料存放在裝置上,主要畫面離線時仍可載入,或清楚顯示離線提示。
  • HTTPS:service worker 只會在安全連線下執行,因此必須有有效的 SSL 證書。
  • 推送通知(可選):用戶同意後,你的伺服器可以在平台支援的情況下發送通知。

「安裝」PWA 通常只是在主畫面或桌面加上一個圖示,不涉及從應用程式商店下載。

網站、PWA 與原生 App 的分別

  • 一般網站:在瀏覽器分頁開啟,大部分頁面需要連線,用戶主要透過搜尋和連結找到它。
  • PWA:沿用同一套網頁程式碼和網址,再加上安裝、離線畫面,以及在支援情況下的通知。部署到伺服器後即可更新,毋須經過應用程式商店審核。
  • 原生 App:為 iOS 和 Android 開發,經 App Store 和 Google Play 發佈。它最能深入使用裝置功能和背景處理,但每次發佈都要經商店審核。

對中小企的好處

  • 一套程式碼覆蓋不同裝置。手機、平板電腦和桌面電腦都運行同一個 App,項目範圍往往比開發兩個原生 App 小。
  • 毋須經過商店。客戶打開連結即可使用,經常使用的話再安裝。
  • 更新較快。伺服器上的修正,會在 service worker 取得新版本後送達用戶。
  • 重複瀏覽較快。快取配合用於靜態檔案的 CDN,可令再次瀏覽時感覺更快。

需要預先考慮的限制

  • 平台差異。安裝、通知和背景功能的支援程度因瀏覽器和操作系統而異,亦會隨時間改變。根據 Apple 的文件,iPhone 和 iPad(iOS 及 iPadOS 16.4 或以上)的網頁推送適用於已加入主畫面的網頁 App,而不適用於一般 Safari 分頁中的網頁。承諾提供功能前,應先查閱最新文件。
  • 裝置存取有限。原生 App 可使用的部分硬件和系統功能,在瀏覽器中可能受到限制。如需使用藍牙或背景定位,應及早在目標裝置上測試。
  • 離線功能需要設計。須有人決定快取甚麼、保留多久,以及離線提交的表格如何處理。瀏覽器可能清除已儲存的資料,因此伺服器應仍是主要紀錄。
  • 用戶找到它的途徑不同。PWA 預設不會在應用程式商店上架;如要上架,需要額外封裝。
  • 舊版本殘留。快取策略規劃不善,用戶可能一直停留在舊版本,所以更新前應先在 Staging 環境測試。

甚麼情況適合用 PWA

如果用戶經常回來預約、瀏覽產品目錄、填寫表格或查看儀表板,而你希望以一個產品同時照顧手機和桌面電腦,PWA 通常合適。它也適合以 MVP 形式測試構思。如果核心價值取決於裝置硬件、大量離線使用,或客戶期望在應用程式商店找到你,原生 App 可能更合適。如果訪客主要閱讀資訊,一般網站通常已足夠。

以下為說明用例子:一間補習中心希望家長查看課堂時間表並收到提示。PWA 可讓家長安裝時間表、離線查看,並在裝置支援時選擇接收網頁推送提示,電郵則作為後備。

委託開發 PWA 前的檢查清單

  • 用戶實際使用哪些裝置和瀏覽器?每種裝置上必須支援哪些功能?
  • 哪些畫面必須離線可用?資料無法同步時,用戶會看到甚麼?
  • 是否需要推送通知?不支援時有甚麼後備方案?
  • 它會透過 API 連接哪些系統,例如預約或付款系統?
  • 更新會如何測試?由誰確認快取版本已經更新?
  • 推出後由誰維護 App、託管服務和證書?

如要比較不同方案,可參閱我們的手機 App、Web App 及微信小程序開發頁面,或我們的網站及 Web App 開發服務。

常見問題

PWA 是否等同響應式網站?

不是。響應式網站會按螢幕大小調整版面。PWA 通常也是響應式的,並另外加入 manifest 和 service worker,以支援安裝和離線使用。

PWA 可以在 iPhone 上使用嗎?

它可像一般網站在瀏覽器開啟,用戶亦可把它加入主畫面。網頁推送等功能取決於 iOS 版本,以及 App 是否已加入主畫面。請在客戶使用的裝置上測試。

現有網站可以變成 PWA 嗎?

通常可以,方法是加入 manifest、service worker 和 HTTPS。所需工夫視乎網站的建構方式,以及你需要多少離線功能。

PWA 會取代我們的原生 App 嗎?

有時會。如果 App 主要顯示內容和表格,PWA 或已能滿足大部分需要。如果它依賴裝置硬件或需要在商店上架,應先比較兩者再決定。

諮詢WhatsApp
甚麼是 PWA?香港中小企網站與 App 選擇指南 | technine.io