參考鏈接:https://blog.csdn.net/a44496913/article/details/80154254
什么是PWA
PWA是Progressive Web APP的英文縮寫椿每,翻譯為漸進(jìn)式增強(qiáng)WEB應(yīng)用适秩。
目的是在移動端利用提供的標(biāo)準(zhǔn)化框架崎场,在網(wǎng)頁應(yīng)用中實現(xiàn)和原生應(yīng)用相近的用戶體驗的漸進(jìn)式網(wǎng)頁應(yīng)用佃牛。
PWA的特點
1.可靠——即使加載,即使在不確定的網(wǎng)絡(luò)條件下也不會受到影響。
當(dāng)用戶從主屏幕啟動時,service work可以立即加載漸進(jìn)式Web應(yīng)用程序剂跟,完全不受網(wǎng)絡(luò)環(huán)境的影響。service work就像一個客戶端代理酣藻,它控制緩存以及如何響應(yīng)資源請求邏輯曹洽,通過預(yù)緩存關(guān)鍵資源,可以消除對網(wǎng)絡(luò)的依賴辽剧,確保為用戶提供即時可靠的體驗送淆。
2.快速
3.沉浸式體驗——感覺就像設(shè)備上的原生應(yīng)用程序,具有沉浸式的用戶體驗抖仅。
漸進(jìn)式Web應(yīng)用程序可以安裝并在用戶的主屏幕上坊夫,無需從應(yīng)用程序商店下載安裝。他們提供了一個沉浸式的全屏幕體驗撤卢,甚至可以重新與用戶接觸的Web推送通知环凿。
優(yōu)劣勢
優(yōu)勢:
1.無需安裝,無需下載放吩,只要你輸入網(wǎng)址訪問一次智听,然后將其添加到設(shè)備桌面就可以持續(xù)使用。
2.發(fā)布不需要提交到app商店審核
3.更新迭代版本不需要審核渡紫,不需要重新發(fā)布審核
4.現(xiàn)有的web網(wǎng)頁都能通過改進(jìn)成為PWA到推,能很快的轉(zhuǎn)型,上線惕澎,實現(xiàn)業(yè)務(wù)莉测、獲取流量
5.不需要開發(fā)Android和IOS兩套不同的版本
6.Web應(yīng)用程序中,可以通過manifest.json控制應(yīng)用程序的顯示方式和啟動方式唧喉,指定主屏幕圖標(biāo)捣卤、啟動應(yīng)用程序時要加載的頁面、屏幕方向八孝,甚至可以指定是否顯示瀏覽器Chrome董朝。
劣勢:
1.游覽器對技術(shù)支持還不夠全面,不是每一款游覽器都能100%的支持所有PWA
2.需要通過第三方庫才能調(diào)用底層硬件(如攝像頭)
3.PWA現(xiàn)在還沒那么火干跛,國內(nèi)一些手機(jī)生產(chǎn)上在Android系統(tǒng)上做了手腳子姜,似乎屏蔽了PWA, 但是相信當(dāng)PWA火起來以后,這個問題就不會是問題
4.iOS目前支持不了PWA楼入,由于蘋果WebKit不對外提供一些核心API哥捕。(iOS 11.3 版本中牧抽,蘋果公司悄悄地增加了基于“漸進(jìn)增強(qiáng) Web 應(yīng)用程序”)
相比較原生應(yīng)用的限制
iOS:
1.PWA 應(yīng)用只能存儲50 Mb 的離線數(shù)據(jù)和文件
2.如果用戶幾周不使用某個 PWA 應(yīng)用,iOS 會釋放該應(yīng)用文件扭弧。雖然圖標(biāo)還是會顯示在主屏幕上阎姥,但是當(dāng)點擊進(jìn)去记舆,將會重新下載該 PWA 應(yīng)用
3.無法使用一些特性鸽捻,比如藍(lán)牙、序列端口泽腮、信標(biāo)御蒲、Touch ID、Face ID诊赊、ARKit厚满、高度傳感器與電池信息,這需要等到 Web 平臺提供了相應(yīng)新特性你才能使用碧磅。
4.無法在后臺訪問執(zhí)行代碼
5.無法訪問隱私信息(聯(lián)系人碘箍、位置),也無法訪問本地社交應(yīng)用
6.沒有應(yīng)用內(nèi)支付和許多其它基于蘋果的服務(wù)
7.在 iPad 上鲸郊,無法使用 Side 或 Split Views 與其它應(yīng)用共享屏幕丰榴,PWA 應(yīng)用始終占用整個屏幕
8.沒有推送通知,沒有 icon badge(在應(yīng)用 icon 上顯示小紅點)與 Siri 集成
Android:
1.在安卓上秆撮,你可以存儲超過50 Mb 的東西
2.如果你不使用該應(yīng)用四濒,安卓不會刪除它的文件,但是在手機(jī)存儲不夠時會刪除职辨。同時盗蟆,如果用戶安裝或使用頻繁,PWA 應(yīng)用可以請求永久存儲
3.為 BLE 設(shè)備接入藍(lán)牙
4.通過 Web 共享訪問本地共享對話框
5.語音識別
6.后臺同步和網(wǎng)頁推送通知
7.通過 Web App Banner 邀請用戶安裝 PWA 應(yīng)用
8.你可以在一定程度上自定義想要的啟動畫面和方向
9.使用 WebAPK 和 Chrome舒裤,用戶只能安裝同個 PWA 應(yīng)用的一個實例
10.使用 WebAPK 和 Chrome喳资,PWA 應(yīng)用顯示在設(shè)置界面中,你還可以看到數(shù)據(jù)的使用情況腾供;在 iOS 系統(tǒng)中仆邓,這些都體現(xiàn)在 Safari 中
11.使用 WebAPK 和 Chrome,PWA 應(yīng)用管理著 URL 的用途台腥,如果你得到一個指向 PWA 應(yīng)用的 URL宏赘,它將會在 standalone 模式下打開,而不是在瀏覽器的窗口中
PWA 應(yīng)用可以在 iOS 系統(tǒng)上做什么黎侈?
1.用戶可以在安裝之前更改應(yīng)用圖標(biāo)的名字
2.可以在 configuration profile 頁面進(jìn)行配置察署,這樣用戶就可以從公司獲取 PWA 應(yīng)用的快捷方式(這一點很好!)峻汉。Safari 使用術(shù)語 WebClip 來描繪這個特征贴汪,然而根據(jù)文檔來看脐往,似乎并不能讀取 Web App Manifest
Configuration Profiles 可以包括 WebClips 或 PWA 圖標(biāo)
沒有 App Store,那怎么安裝 PWA扳埂?
1.用戶必須在 Safari 中以某種方式訪問你的 PWA 鏈接业簿,并手動點擊分享圖標(biāo),然后點擊“添加到主屏幕”阳懂。沒有任何跡象表明你訪問的網(wǎng)站是 PWA 應(yīng)用梅尤。
2.為用戶提供安裝教程,務(wù)必注意這些按鈕會根據(jù)系統(tǒng)語言進(jìn)行本地化調(diào)整岩调。
3.同時巷燥,在 App Store 中會有其它非自帶瀏覽器,像 Chrome号枕、火狐缰揪、Brave 和 Edge 是無法安裝 PWA 應(yīng)用的,它們也無法使用 Service Workers葱淳。
4.當(dāng)然钝腺,大部分 Web 應(yīng)用會提供一個鏈接,讓你可以從 App Store 中安裝原生應(yīng)用赞厕,PWA 應(yīng)用中也有這樣一個鏈接
牢記這幾點
1.你的 PWA 應(yīng)用在不同的會話中無法保存狀態(tài)艳狐。如果用戶離開 PWA 應(yīng)用再次回來的時候,它將會重啟坑傅。所以僵驰,如果你需要用戶驗證郵箱、短信或者雙因子認(rèn)證唁毒,記住給用戶提供一個合適的解決方案蒜茴。
2.不活動的 PWA 應(yīng)用將會顯示為白屏。這時它并沒有在運行浆西,并且如果切換回它們粉私,應(yīng)用將會重啟。