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