一、什么是PWA
PWA是漸進式 Web 應用,運用現代的 Web API 以及傳統的漸進式增強策略來創建跨平臺 Web 應用程序。。這些應用無處不在、功能豐富,使其具有與原生應用相同的用戶體驗優勢。
PWA 是可被發現、易安裝、可鏈接、獨立于網絡、漸進式、可重用、響應性和安全的。
PWA 權益
類似本機的體驗
在設備上安裝 PWA 時,其功能與其他應用一樣。 例如:
PWA 有自己的應用程序圖標,可以添加到設備的主屏幕或任務欄。打開關聯的文件類型時,可以自動啟動 PWA。PWA 可以在用戶登錄時運行。可以將 PWA 提交到應用程序存儲,例如 Microsoft Store。高級功能
PWA 還有權訪問高級功能。 例如:
當設備脫機時,PWA 可以繼續工作。PWA 支持推送通知。即使應用程序未運行,PWA 也可以執行定期更新。PWA 可以訪問硬件功能。與 Web 相關的優勢
最后,PWA 可以在 Web 瀏覽器中運行,就像在網站中一樣。 像網站一樣運行,PWA 具有優勢,例如:
可以通過搜索引擎為 PWA 編制索引。可以從標準 Web 鏈接共享和啟動 PWA。PWA 對用戶來說是安全的,因為它們使用安全的 HTTPS 終結點和其他用戶安全措施。PWA 適應用戶的屏幕大小或方向以及輸入法。PWA 可以使用 WebBluetooth、WebUSB、WebPayment、WebAuthn 或 WebAssembly 等高級 Web API。延伸閱讀:
二、三大PWA特性
功能性(capable)可靠性(reliable)可安裝性(installable)PWA同時具備這三大特性,這也讓PWA的應用體驗更接近原生。
功能性
Web App當今時代已經具備了豐富的功能,你可以基于?WebRTC?開發一個視頻聊天工具,可以使用?Geolocation API?開發一個地圖軟件,也可以使用?Notification API?來給你的APP推送消息,讓用戶可以在APP之外接收到通知。你也可以使用?WebGL?和?WebVR?來虛擬化這些場景。通過?Web Assembly,你可以步入其他生態,比如:C和C++等,給Web生態帶來更多能力。
直到最近,只有原生App聲稱具備這些功能。當然,有一些能力還是web當前無法使用的,但新的API會被定義,用來擴展Web能力,比如讓Web擁有文件系統的訪問權限、媒體控制權限、圖標上的badge修改權限、剪切板的全部功能。所有的這些能力都與Web安全、用戶為中心的權限模型共同構建,確保訪問網站不會給用戶造成威脅。
隨著現代API的定義,Web的功能性會越來越豐富。
可靠性
一個可靠的PWA應用感受起來很快,而且不依賴網絡。
速度對于用戶使用體驗來說至關重要。實際上,頁面加載的時間從1-10秒,用戶流失會增長123%。性能也并非在?onload?事件之后就結束了。用戶無需時刻擔心他們的交互(例如點擊了按鈕)有沒有響應。滾動和動畫需要保持流暢。
最后,可靠的App需要對網絡無依賴。用戶會期望在弱網或者無網絡的情況下打開App。他們期望看到上次他們加載的內容,就像是音頻或者視頻播放到某個特定時間點,即使網絡連接困難,還是要保持可靠和可用。如果請求失敗了,比起默默地失敗或者崩潰,給用戶合理的提示才是優異。
用戶更喜歡App可以在眨眼睛響應他們的操作,這也是可靠性的一種。
可安裝性
安裝好的PWA應用可以在一個獨立的窗口啟動,而不用在瀏覽器中。它們也可以從主頁、docks或者任務欄啟動。你也可以搜索到它們,然后從搜索結果中打開。你也可以切換到其他App,然后再切換回來。這感覺就跟原生App幾乎一致,成為設備的一部分。