最近關於漸進式Web應用有好多討論,有一些人還在質疑漸進式Web應用是否就是移動端未來。 但在這篇文章中我並不會將漸進式APP和原生的APP進行比較,但有一點是可以肯定的,這兩種APP的目標都是使用戶體驗變得更好。 移動端Web應用有很多優秀的概念讓人應接不暇,但好在編寫一個漸進式Web應用不是一個 ...
最近關於漸進式Web應用有好多討論,有一些人還在質疑漸進式Web應用是否就是移動端未來。
但在這篇文章中我並不會將漸進式APP和原生的APP進行比較,但有一點是可以肯定的,這兩種APP的目標都是使用戶體驗變得更好。
移動端Web應用有很多優秀的概念讓人應接不暇,但好在編寫一個漸進式Web應用不是一個很困難的事情。在這篇文章里將向你介紹如何把一個普通的網站轉換成漸進式Web應用。你可以按照這篇文章一步一步地做,做完之後你的網站將可以實現離線訪問,並且可以在桌面上創建該網站的圖標。那麼下麵即將開始入門教程。
什麼是漸進式Web應用?
漸進式Web應用是一種全新的Web技術,讓Web應用和原生APP的體驗相近或一致。
漸進式Web應用它可以橫跨Web技術及Native APP開發的解決方案,對於開發者的優勢如下:
- 你只需要關心W3C的Web標準,不用關心各種Native APP的代碼。
- 用戶可以在安裝應用之前先試用。
- 在漸進式Web應用中,你不需要使用各種應用商店來分發應用,也不用關心應用發佈時奇怪的審核標準以及應用內購的平臺抽成。另外,應用程式更新是自動進行的,無需用戶交互,所以整體的使用體驗對於用戶來講更為的平滑。
- 漸進式Web應用的“安裝”過程很快,只需要在主屏幕上添加一個圖標即可。
- 漸進式Web應用啟動時可以顯示一個好看的啟動畫面。
- 你可以在漸進式Web應用中提供具有全屏體驗的應用。
- 通過系統通知等形式提高用戶的粘性。
- 漸進式Web應用將會在本地緩存必要的文件,所以漸進式Web應用會比普通的Web應用的性能更好。
- 輕量級安裝——你只需要緩存幾百KB的數據即可。
- 所有的數據傳輸必須使用安全的HTTPS連接
- 漸進式Web應用可以離線緩存數據,並且會在重新連接互聯網時重新同步數據。
漸進式Web應用發展的現狀
漸進式Web應用才剛剛開始發展,但實際上在國內,有些網站已經實際開始PWA的實踐了,例如:微博、豆瓣、淘寶等平臺。可能這時候聰明的你可能就會產生疑問,那這個PWA不就是和微信小程式一樣嗎,對是這樣,二者的目的是一致的,就是在移動端為用戶提供足夠輕量且與原生應用使用體驗相近的“輕”應用。
但就目前來講,PWA是Google主推的一項技術標準,FireFox,Chrome以及一些基於Blink的瀏覽器已經支持漸進式Web應用了,Edge上對漸進式Web應用的支持還在開發。Apple公司也表示會考慮在自己Safari支持PWA。然而這項功能已經進入了WebKit內核的五年計劃中。長期來看,對瀏覽器相容性的支持方面應該已經不算太大問題了。況且在現階段,在不支持漸進式Web應用的瀏覽器中,你的應用也只是無法使用漸進式Web應用的離線功能而已,除此之外的功能均可以正常使用。
而在微信這邊,憑藉龐大的用戶基數和體量能否與PWA分庭抗禮乃至笑到最後目前還不得而知。
示例代碼
大多數教程都講述的是如何在Chrome上從零開始製作一個類似原生界面的應用。然而在這篇教程中,我們並不打算做一個單頁面應用程式,所以在這我們也不必瞭解諸如Material Design等知識。那麼下麵我們就直接看示例吧。
你可以從GitHub中獲取本教程對應的示例代碼。
本示例中提供了一個有四個網頁的網站,一個CSS文件和一個JavaScript文件。這個網站可以在所有的現代瀏覽器上正常工作(IE10+)。如果你的瀏覽器支持漸進式Web應用,用戶可以在離線狀態下將會直接訪問緩存中的頁面。
要想運行此示例,請確保你已經安裝了Node.js。並請打開命令行,使用以下命令來運行該示例:
node ./server.js [port]
以上命令中,[port]是可選部分,預設為8888。使用 Ctrl + C 即可停止Web伺服器。
打開基於Blink內核的瀏覽器(Opera,Vivaldi,Chrome),然後在地址欄中輸入http://localhost:8888/(註意埠號是否正確),即可訪問該示例。你可以打開開發者工具(F12 或者 Cmd/Ctrl + Shift + I)來查看控制台信息。
查看首頁,也可以在頁面上點擊一下,然後使用以下方法進入離線模式:
選中Network標簽或者Application -> Service Workers 標簽下的“離線”選項。重新訪問之前訪問過的網頁,之前網頁仍然會載入:
連接移動端安裝
除了在PC瀏覽器訪問外,你也可以在移動設備上訪問該示例。使用USB線纜將你的移動設備連接到電腦上,然後從右上角三個點菜單中打開More tools - Remote devices標簽
點擊左側的Settings菜單,然後添加一條埠映射(Port Forwarding)的規則,將8888映射為localhost:8888,現在你可以直接在手機打開Chrome然後訪問http://localhost:8888 。
你可以使用瀏覽器的“添加到主屏幕”功能將當前網頁添加到主屏幕,在你訪問了幾個頁面之後,瀏覽器會將這個Web應用“安裝”到你的設備上。瀏覽幾個頁面,關閉Chrome並將設備與電腦斷開連接,點擊桌面上生成的圖標,你會看到一個Splash頁面,並且你可以繼續瀏覽之前瀏覽過的頁面。
小結
通過本節對漸進式Web應用的介紹,相信大家對PWA是什麼已經有了基本的認識。PWA有無需擔心有無網路的特點,並具有獨立入口與獨立的保護機制。新標準的推出很可能會帶著 Web 應用在移動設備上浴火重生。所以滿足 PWA 模型的前端控制項,如純前端表格控制項SpreadJS,將逐漸成為移動操作系統的一等公民,並將向Native APP發起挑戰。
在下節中我們將帶你一起去看看,PWA的原理是什麼,以及它究竟是如何工作的,敬請期待。
原文鏈接:https://www.sitepoint.com/retrofit-your-website-as-a-progressive-web-app/