Progressive Web Apps入門

來源:互聯網
上載者:User

標籤:方式   idt   ack   nbsp   入門   site   工作   模型   sbt   

 

 PC和Mobile開發技術演化PC方向,從用戶端到富用戶端,到現在廣泛使用的Web。 移動方向,目前主要還是原生應用和Mobile Web,PWA相關技術是未來發展方向。 PWA的概念Progressive Web App (中文翻譯為:漸進式Web應用)帶來的體驗將網路應用的優點與原生應用的優點相結合。使用者在瀏覽器中第一次訪問時就能體會到它們的好處,因為不需要進行任何安裝。在使用者隨著時間的推移增進與應用的關係後,其功能會變得越來越強大。它即使在不可靠網路上也能快速載入、能夠發送相關推播通知、具有案頭表徵圖,並且可採用頂層全屏體驗的方式載入。 PWA的特點
  • 漸進式 - 適用於選用任何瀏覽器的所有使用者,因為它是以漸進式增強作為核心宗旨來開發的。
  • 自適應 - 適合任何機型:電腦裝置、行動裝置、平板電腦或任何未來裝置。
  • 串連無關性 - 能夠藉助於服務背景工作執行緒在離線或低品質網路狀況下工作。
  • 類似應用 - 由於是在 App Shell 模型基礎上開發,因此具有應用風格的互動和導航,給使用者以應用般的熟悉感。
  • 持續更新 - 在服務背景工作執行緒更新進程的作用下時刻保持最新狀態。
  • 安全 - 通過 HTTPS 提供,以防止窺探和確保內容不被篡改。
  • 可發現 - W3C 清單和服務背景工作執行緒註冊範圍能夠讓搜尋引擎找到它們,從而將其識別為“應用”。
  • 可再互動 - 通過推播通知之類的功能簡化了再互動。
  • 可安裝 - 使用者可免去使用市集的麻煩,直接將對其最有用的應用“保留”在主畫面上。
  • 可連結 - 可通過網址輕鬆分享,無需複雜的安裝。
PWA vs Native AppNative App:依賴啟動並執行平台作業系統,比如Android或iOS,需要將應用提交到市集,比如Apple App Store或者Google Play Store,國內各大市集等。PWA:不關係平台作業系統,運行在瀏覽器中,使用標準的Web開發技術,無需提交到市集進行審核,發布即用。PWA vs Web AppWeb App:使用標準的Web技術,但是在處理離線,推送上欠缺,不能產生案頭表徵圖等。 PWA:使用標準的Web開發技術,可以支援離線可用,通過service worker進行更新和緩衝,採用App shell模型基礎開發,介面和互動類似應用。支援推送,未來還支援操作裝置(調用網路攝影機、讀取陀螺儀等)。PWA關鍵技術 Manifest網路應用清單是一個 JSON 檔案,您(即開發人員)可以利用它控制在使用者想要看到應用的地區(例如行動裝置主畫面)中如何向使用者顯示網路應用或網站,指示使用者可以啟動哪些功能,以及定義其在啟動時的外觀。網路應用清單提供了將網站書籤儲存到裝置主畫面的功能。一個PWA的manifest.json樣本:
{  "name": "HackerWeb",  "short_name": "HackerWeb",  "start_url": ".",  "display": "standalone",  "background_color": "#fff",  "description": "A simply readable Hacker News app.",  "icons": [{    "src": "images/touch/homescreen48.png",    "sizes": "48x48",    "type": "image/png"  }, {    "src": "images/touch/homescreen72.png",    "sizes": "72x72",    "type": "image/png"  }, {    "src": "images/touch/homescreen96.png",    "sizes": "96x96",    "type": "image/png"  }, {    "src": "images/touch/homescreen144.png",    "sizes": "144x144",    "type": "image/png"  }, {    "src": "images/touch/homescreen168.png",    "sizes": "168x168",    "type": "image/png"  }, {    "src": "images/touch/homescreen192.png",    "sizes": "192x192",    "type": "image/png"  }],  "related_applications": [{    "platform": "web"  }, {    "platform": "play",    "url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb"  }]}

 

 Service WorkerService Worker 是一段指令碼,與 Web Worker 一樣,也是在後台運行。作為一個獨立的線程,運行環境與普通指令碼不同,所以不能直接參与 Web 互動行為。Native App 可以做到離線使用、訊息推送、後台自動更新,Service Worker 的出現是正是為了使得 Web App 也可以具有類似的能力。頁面注入service worker程式碼範例: 
if (navigator.serviceWorker) {  navigator.serviceWorker.register(‘service-worker.js‘)  .then(function(registration) {    console.log(‘service worker 註冊成功‘);  }).catch(function (err) {    console.log(‘servcie worker 註冊失敗‘);  });}

 

 Responsive Web DesignRWD是一種網頁設計的技術做法,該設計可使網站在不同的裝置(從案頭電腦顯示器到行動電話或其他移動產品裝置)上瀏覽時對應不同解析度皆有適合的呈現,減少使用者進行縮放、平移和滾動等操作行為。第4-6點不在這裡展開,剛興趣的可以尋找相應資料進行學習。瀏覽器對PWA的支援越來越多的瀏覽器支援PWA的技術,特別是行動瀏覽器,比如Chrome,Firefox,UC行動瀏覽器等。 PWA案例欣賞國內的有新浪微博Lite版本:https://m.weibo.cn/beta  餓了麼移動版:https://h5.ele.me/msite/#pwa=true 國外有Twitter移動版本、Pinterest等產品。隨著各大瀏覽器對PWA技術的支援,未來會出現越來越多的PWA的應用。 參考連結 https://codelabs.developers.google.com/codelabs/your-first-pwapp/#01190000008880637https://zhuanlan.zhihu.com/p/25800461https://developer.mozilla.org/zh-CN/Apps/Progressivehttps://openweb.baidu.com/pwa-future/https://lavas.baidu.com/dochttps://zhuanlan.zhihu.com/p/25524382

Progressive Web Apps入門

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.