成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS+PWA已來,你來嗎?

移動開發
隨著 iOS 11.3 的發布,蘋果悄悄的支持了 PWA 理念背后的幾種新技術:Service Worker, Web App Manifest,那么讓我們來看一下它們是如何工作的,它們能做到什么,它們的挑戰是什么,以及如果你已經發布過 PWA 應用,那你還應該知道什么。

隨著 iOS 11.3 的發布,蘋果悄悄的支持了 PWA 理念背后的幾種新技術:Service Worker, Web App Manifest,那么讓我們來看一下它們是如何工作的,它們能做到什么,它們的挑戰是什么,以及如果你已經發布過 PWA 應用,那你還應該知道什么。 

iOS+PWA已來,你來嗎?

這是一個在 iPad 上的 PWA,它能全屏,能離線使用,還可以像 App Store 中其他原生應用一樣固定在 Dock 中

 

如果你看到這篇文章之前還不知道什么是 PWA,我可以告訴你,它沒有一個唯一且準確的定義,但我可以告訴你的是,它是一個用 Web 技術創建的 App,不用打包,不用簽名,可以離線工作,如果你愿意,還可以添加到桌面上,看起來就和其他應用一樣。

在大多數平臺上,都不要求 PWA 必須從 App Store 中安裝,除了 Edge 瀏覽器和 Windows 10,它們要求 PWA 必須在它們的應用商店中。

所以,你猜對了,你現在可以不用通過 App Store 在 iOS 上安裝應用了。這可能就是為什么蘋果沒有直接提到這項新能力的原因之一,他們可能不想換休用戶,甚至在 Safari 的發布說明中都沒有提到這項技術。 

iOS+PWA已來,你來嗎?

你可以看出它們的區別嗎?一個是原生 Google 地圖,一個是 PWA 版本

 

難道蘋果不是 PWA 的創造者嗎?

說實話,Google Chrome 團隊創造了 PWA 這個屬于,但是這個項目最初是在原始 iPhone OS 的 Safari 上提出的,2007 年,史蒂夫喬布斯在 WWDC 上宣布 “one more thing”:如何在 原始 iPhone 上開發應用程序,令人驚訝的是居然是 Web App。App Store 那時候根本不在最初的計劃中,并且在 iPhone 發布的***年,原生 SDK 還不能用。從蘋果的角度來看,即使在今天,PWA 也只是 “主屏幕上的 webapp”,圖標也被成為 WebClip。

  • 如果你愿意,可以看一下我去年在 Fluent Conference 上的演講視頻,我在 10 分 50 秒的時候提到了這個事情。視頻鏈接地址:

https://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Ftime_continue%3D651%26v%3DEFGltzFSK-c

11年前,這個想法并沒有得到太多的關注,蘋果也忘記了更新這個能力,所以有 10+ 年的時間,這個功能一直有缺陷并且不穩定。隨后,幾年后,其他的平臺實現了這個想法,包括諾基亞 N9 上的 MeeGo 瀏覽器和 Android Chrome。

Chrome 幫助改善和實現這些技術來提供一個更好的體驗給用戶,主要體現在 Service Worker 和 Web App Manifest 規范上。從今天(2018 年 3 月 30 日) iOS 11.3 版本,蘋果跟進 Chrome, Firefox, Samsung Internet, UC 瀏覽器 和 Opera 支持了這兩個奇數規范,Mac 版 Safari 也已經支持了 Service Worker,并且 Web App Manifest 的支持今年也在進行中。 

iOS+PWA已來,你來嗎?

史蒂夫喬布斯正在 WWDC 2007 年的***款 iPhone 上演示 PWA(那個時候還不叫 PWA)

 

等等,所以這些應用沒有通過 App Store 的質量測試,對吧?

是的,你又猜對了。但是 PWA 目前只能在瀏覽器或其他 Web 平臺安全策略下運行,這意味著你可以“發布”未在 App Store 中獲得批準的應用,例如貴公司員工的內部應用(也包括承認內容),但無法使用一些 Native 的 API,如 iPhone X 上的 Face ID,或者 ARKit 增強現實,或者至少,你需要等待 Web 平臺支持這些新的 API。

PWA 可以在作為一個普通網站,或者 standalone 模式(沒有地址欄和 Safari 的其他功能)在Safari 中運行,就像系統中的其他應用程序一樣。

iOS 中 PWA 的能力

在 iOS 的 Web 平臺上您可以調用以下 API:

  • 地理信息定位
  • 傳感器(陀螺儀,加速度計,磁力儀)
  • 相機
  • 音頻輸出
  • 語音合成(僅連接耳機)
  • Apple Pay
  • WebAssembly, WebRTC, Web GL 以及許多實驗性的特性

iOS+PWA已來,你來嗎?

你能區分哪些是 PWA,哪些是原生應用嗎?

 

和 iOS 原生應用相比有哪些限制

PWA 只能存儲最多 50Mb 的離線數據和文件

  • 如果用戶幾周不使用 PWA,iOS 將釋放這些 PWA 緩存的文件,桌面圖標當然還在,用戶下次訪問的時候,會重新緩存文件
  • 無法應用一些 Native API,如:藍牙、Touch ID、Face ID、ARKit、電池信息等
  • 無法在后臺執行代碼
  • 無法訪問一些私密數據,如:聯系人等,也無法訪問本地社交應用
  • 無法訪問 In App Payments 和其他許多基于 Apple 的服務
  • 在 iPad 上,無法使用分屏和其他應用程序共享屏幕,PWA 始終占滿整個屏幕
  • 沒有消息推送,沒有 Siri 集成 

iOS+PWA已來,你來嗎?

如果你安裝了一個叫 Tinder 的 PWA,Siri 并不能找到它

 

哪些 在 Android 上可以,iOS 上不行的呢?

在 Android 上可以存儲找過 50Mb 的數據和文件

  • Android 不會在你很久不用這個 PWA 的時候就把它的文件刪掉,但是它會在存儲空間不足的時刪除文件。如果用戶安裝并且使用很多的時候,PWA 可以使用***存儲
  • BLE 設備的藍牙訪問
  • Android上可以在 Web 中使用 Native 分享對話框,通過 Web Share API
  • 語音識別
  • 后臺同步和離線消息推送
  • 彈出安裝對話框提示和邀請用戶安裝 PWA
  • 你可以自定義(有限)PWA 啟動畫面和決定 PWA 是豎屏還是橫屏
  • 在 WebAPK 和 Chrome 中,一個 PWA 只能安裝一次
  • 在 WebAPK 和 Chrome 中,PWA 會出現在“設置“中,并且您可以看到數據使用量,在 iOS 中,所有內容都包含在 Safari 中
  • 在 WebAPK 和 Chrome中,PWA 會捕獲你的 URL,如果是一個 PWA 的鏈接,它將用獨立模式打開 PWA,而不會打開瀏覽器

哪些在 iOS 上可以,Android 下不行的呢?

  • 用戶可以在安裝前修改 PWA 的名字
  • 可以在配置文件中進行修改,因此企業用戶可以從公司安裝 PWA(這是一個很好的點),Safari 管這個叫 WebClip(估計是沒有好好閱讀 Web App Manifest 的標準) 

iOS+PWA已來,你來嗎?

配置文件包含 WebClips 和 PWA 圖標

 

在 iOS 上怎么安裝 PWA 呢?

這是在 iOS 上重要的挑戰之一,因為 iOS Safari 沒有任何提示或者引導讓用戶添加 PWA,Android 下有一個叫 Web App Install Banners 的引導用戶,所以,用戶需要在 Safari 中先訪問你的站點,然后手動點擊分享(Share)圖標,然后點擊“添加到主屏幕”。整個過程中,沒有任何一點表現出來這是一個 PWA。 

iOS+PWA已來,你來嗎?

點擊分享之后,點擊添加到桌面按鈕,需要 Web App 本身對用戶進行引導,引導時請不要忘記當前系統語言

 

從 App Store 安裝的其他瀏覽器,如 Chrome,Firefox,Brave 或者 Edge 都不能安裝 PWA,也不能使用 Service Worker。

完成安裝后,它看起來就像主屏幕上的其他圖標,雖然它不會有 3D Touch 菜單,如果您再次安裝相同的 PWA,擇會有另外一個同樣的圖標,指向相同的 PWA(比較幸運的是,安裝的文件將被共享)。

此外,很多 Web App 都有一個比較顯眼的位置引導用戶從 App Store 下載安裝原生應用,在 PWA 中也這樣顯示了,這其實對用戶體驗是一個傷害,比如 Tinder: 

iOS+PWA已來,你來嗎?

我已經安裝了 PWA 了,不要試圖引導我下載 Native App

 

我已經有 PWA 站點 了,iOS 用戶能馬上使用嗎?

在用戶升級到 iOS 11.3 之后,用戶就可以安裝您的 PWA 了,不需要給 iOS 額外的配置,每個 PWA 都能安裝,但是這并不意味著一切都能和你想的一樣。 

iOS+PWA已來,你來嗎?

Uber PWA 看起來真的很不錯,但是當你點擊登錄或者繼續按鈕時候,授權頁面會打開 Safari,從而跳出了獨立運行的 PWA

 

如果你正在閱讀這篇文章,你可能已經在 iOS PWA 還在 beta 版的時候我發布的一篇文章《Cupertino,我們遇到麻煩了》,不好的消息是,在 beta 版期間遇到的大多數問題在 iOS 11.3 發布之后依然存在。 

iOS+PWA已來,你來嗎?

如果你什么都不做,你的 PWA 頂部將會有來能重疊的黑色 bar,看不見時間,電池,其他信,狀態欄

 

什么不能正常工作呢?

  • 顯示問題:fullscreen 和 minimal-ui 兩種模式在 iOS 上不支持,fullscreen 和 standalone 模式一樣,而 minimal-ui 模式只是一個 Safari 的快捷方式。但是你可以通過使用 cover-fit 或者已經棄用的私有 meta 標簽來達到類似的 fullscreen 效果(狀態欄會處在,但是會覆蓋在你的 app 上)
  • 后臺同步(background sync)還不支持
  • 無法鎖定 PWA 的方向,橫屏還是豎屏
  • theme-color 屬性不起作用,無法修改狀態欄的顏色,你可以通過使用已經棄用的私有 meta 標簽來設置黑色或者白色的狀態欄,也可以使用 CSS/HTML 來模擬 theme-color 

iOS+PWA已來,你來嗎?

星巴克 PWA 在注冊頁面沒有返回按鈕,沒辦法取消當前注冊流程,你需要重啟 PWA

 

  • 如果你的 PWA 沒有后退手勢或者返回按鈕,用戶將無法在頁面間切換
  • iOS 不支持透明圖標,所以一定要注意 

iOS+PWA已來,你來嗎?

Google Keep PWA 只在 Web App Manifest 設置了圖標,所以添加到桌面上的圖標是當前的截屏,你需要設置 Safari 的私有屬性來定制圖標

 

  • 在 iOS 中,無法使用 manifest.json 文件中的圖標,但是可以使用 app-touch-icon link 標簽設置的圖標,如果你沒有提供這個 link 標簽,Safari 將會使用屏幕截圖作為 icon,可以看上面的 Google Keep PWA 的例子
  • 沒有啟動畫面,所以 Web App Manifest 中的大多數顏色屬性都會被忽略
  • 不會有任何和 manifest 相關的事件被觸發,因此你無法通過事件來判斷用戶是否安裝,但可以通過 navigator.standalone 來判斷是否是在 standalone 模式下運行

要記住什么?

  • PWA 無法在會話之間保持狀態,如果用戶切出 PWA 到另外一個應用,它將在切回來的時候重新啟動,因此如果你需要用戶驗證郵箱,短信或者需要調到另外一個 App 來驗證的需求,請重新考慮另一種實現方式

iOS+PWA已來,你來嗎? 

iOS+PWA已來,你來嗎?
所有沒激活的 PWA 都是白屏,無論它們之前是不是,記住,它們沒在運行,并且如果你切回 PWA,它將重新啟動在 iPad 上有同樣的白屏問題

  • 在背后的 PWA 沒有截屏縮略信息,它們看起來都白的,這點很遺憾
  • 當你的 app 在 standalone 模式下運行的時候,可能會有 bug,不要用只 Safari 來測試你的 PWA 

iOS+PWA已來,你來嗎?

NASA 的 PWA 有一些體驗上的問題

 

  • 如果你想讓你的 PWA 利用 iPhone X 的缺口區域,需要用 HTML/CSS 進行特殊處理,如果做的不好,就會看起來很奇怪
  • 有時候,你添加到主屏的時候沒有 manifest 文件,添加的就只是一個快捷方式 

iOS+PWA已來,你來嗎?

星巴克的商標在 Google 地圖中?其實不是,只是連續使用多個 PWA 時,iOS 會有一些奇怪的 bug,PWA 加載了錯誤的 URL

 

  • Safari 和添加到主屏的 PWA 共享相同的 Service Worker Registration(不是 Service Worker 實例) 和緩存的文件,Safari View Controller(比如 Twitter 的應用內置瀏覽器)也支持 Service Worker 和 Cache API,但是似乎在會話關閉后會刪除所有數據
  • 所有第三方瀏覽器(Chrome、Firefox 等)和所有使用 WebView 的應用(Facebook 的應用程序內瀏覽器等)都不支持 Service Worker,我的猜測是,WKWebView 可能u需要一個 API 來讓應用程序開發人員來決定如何使用 Service Worker,但是…誰知道呢 

iOS+PWA已來,你來嗎?

使用 Safari TP,你可以調試 Safari 和主屏上的 PWA,可以調試 Service Worker,也能捕獲網絡請求

 

  • 要在 iOS 上調試 Service Worker,你需要安裝 Safari 技術預覽版或者 Safari 11.1 

iOS+PWA已來,你來嗎?

Service Worker 的調試工具還在實驗階段,例如,暫時還看不到 CacheStorage 中的內容

 

iOS+PWA已來,你來嗎?

  • Service Worker 可以被禁用,可以通過 設置->實驗特性(默認情況下是開啟的) 

iOS+PWA已來,你來嗎?

這個空白的應用是什么?

 

  • 有的時候,你同時打開了很多的 PWA,iOS 任務欄就會很奇怪,顯示了一個沒有圖標和標題的幽靈應用

如果你發現了任何 iOS 上 PWA 的其他 bug,請在下方評論,我會整理一份錯誤報告交給 WebKit 團度,如果你想獲得關于這篇文章的***消息,也請在 Twitter 關注我 @firt,如果您 6 月份在灣區,請看我將教授的手把手學會 PWA 培訓,我們將創建一個 PWA,涵蓋大多數人在其他平臺上都缺少的內容,也包活如何在 iOS 平臺上生存下來。

如果你發現了任何 iOS 上 PWA 的其他 bug,請在下方評論,我會整理一份錯誤報告交給 WebKit 團隊,如果你想獲得關于這篇文章的***消息,也請在 Twitter 關注我 @firt,如果您 6 月份在灣區,請看我將教授的手把手學會 PWA 培訓,我們將創建一個 PWA,涵蓋大多數人在其他平臺上都缺少的內容,也包活如何在 iOS 平臺上生存下來。

責任編輯:未麗燕 來源: OpenWeb開發者
相關推薦

2018-10-25 10:53:01

Java特性數據

2021-12-30 09:39:28

Android 12App開發者

2019-09-03 14:53:11

醫療機器人智慧醫療

2014-11-26 16:50:37

2019-04-18 15:32:45

Serverless騰訊云TVP

2019-08-23 18:40:54

機器人人工智能

2024-08-26 15:17:16

2015-08-24 09:59:19

dt

2018-01-03 12:23:15

云計算邊緣計算

2018-01-16 20:14:37

OpenPOWERAIIBM

2019-06-30 18:53:13

KubeConCNCFLinux

2014-05-21 16:03:45

敏捷網絡華為

2015-10-19 13:16:57

能源互聯網

2023-09-26 11:45:45

2020-02-11 13:05:42

Wi-Fi 65GWi-Fi

2022-02-15 20:08:41

JDKJavaWindows

2020-07-30 16:00:50

新冠疫情人工智能AI

2021-02-06 09:44:35

存儲

2020-12-09 10:34:51

htopLinux命令

2022-11-21 10:28:13

FlutterPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久国产精品免费免费搜索 | 中文字幕在线视频免费观看 | 国产精品久久久久一区二区三区 | 粉色午夜视频 | 一区二区在线看 | 狠狠干五月天 | 香蕉久久a毛片 | 国产黄色免费网站 | 成人高清在线视频 | 操操日 | xxx.在线观看 | 中文字幕一区二区三区不卡 | 国产视频久久 | 精品一区二区三区中文字幕 | 日韩成人精品一区 | 亚洲天堂中文字幕 | 亚洲网站观看 | 成人毛片视频免费 | 成人h动漫亚洲一区二区 | 国产免费一区 | 一级毛片色一级 | 国产高清在线视频 | 日本精品一区二区三区四区 | 1000部精品久久久久久久久 | 日韩免费高清视频 | 国产网站在线免费观看 | 国产精品一区二区久久精品爱微奶 | 久久久久久亚洲欧洲 | 精品久久香蕉国产线看观看亚洲 | 久久精品一区二区三区四区 | 日韩av在线一区二区 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 精品久久久久久久 | 成人国产精品久久久 | 亚洲精品电影网在线观看 | 精品国产欧美一区二区 | 久久久精品天堂 | 日韩视频在线观看一区二区 | 午夜在线免费观看 | 精品视频在线观看 | 亚洲精品久久久一区二区三区 |