楊科,畢業於吉林大學,畢業後從事 Android 開發工做,曾就任於 TCL 擔任客戶端開發工做,現負責極光華南區技術支持工做。在極光積累豐富技術支持實踐經驗,積極瞭解客戶業務、分析用戶需求,致力於尋找客戶問題並提供解決方案。服務器
iOS 10 與通知相關的一項重要更新就是新增了 User Notification Framework,即「用戶通知框架」。通知與推送根本不一樣的地方在於,「推送」屬於通知的觸發方式, 而通知是操做系統層面的一種 UI 展現。網絡
從 iOS 迭代更新的歷史特徵來看,通知一直被蘋果做爲重點內容在擴展:從最初的單純展現,到對 Backgroud 的支持;從對 Payload 的 256 字節限制,到 4K 內容的擴展;從簡單的消息回調,到現在豐富的新特性更新。以下是新特性增長的概覽,主要有八項內容:框架
整體分析以下:ide
iOS 官方將通知分爲兩大類:測試
一、遠程通知加密
遠程通知,由推送的方式觸發,須要服務端發送 URL 給 NotificationServiceExtension 去預先執行下載操做。即便在網絡不通暢的狀況下,蘋果提供的超時後的後續操做也能讓開發者適當地展現通知,從而提升通知交互體驗。目前,遠程的媒體文件須要傳入 https 式連接纔可下載識別,這須要遵循 App Transport Security(ATS)的原則。據悉,明年蘋果會對 https 進行全面支持,用戶將被強制要求使用 https。spa
二、本地通知操作系統
本地通知,由本地的事件觸發,它的推送只能使用本地的資源。更新後的本地通知新增兩種 Trigger:日曆和地理位置。日曆使開發者能夠根據指定的日期和時間來展現本地通知,而且支持循環條件。地理位置能夠在用戶進入或者離開指定區域時觸發本地通知,該特性讓 iOS 通知的地理圍欄觸發有了實現的可能。事件
一、新增 Subtitle資源
iOS 10 更新以後,不管是鎖屏通知、橫幅通知、仍是控制中心等,其內容都是以圓角卡片的形式出現。而且,在原有 Title 的基礎上,還新增了 Subtitle 樣式和 Body。尤爲,Subtitle 的加入給內容類 App 帶來了福音,它在通過精心地編輯和策劃後,很是有利於內容的宣傳與推廣。
二、新增 Attachments
在推送媒體信息上運營,須要用豐富的展現形式來吸引用戶的眼球。Attachments 和以前的 content_available 參數相似,另外還新增了 mutable-content 參數來控制是否增長 Attachments。開發者須要經過實現 NotificationServiceExtension 來展現帶有 Attachments 的通知。
三、通知內容擴展
通知內容擴展頁面容許開發者自定義展現內容,也支持在內容擴展頁面增長更多的自定義 ActionButton。可是,擴展內容不支持交互,因此交互就只能經過 ActionButton 實現。對於支持 3DTouch 的設備,只需點擊通知便可進入通知內容擴展(即當用戶經過 3D touch 按下通知卡片時,通知會展開多個選項的菜單,用戶能夠選擇須要進行的操做而後點擊)。而不支持 3D Touch 的手機,則須要將通知卡片向左滑動,而後點擊查看內容。
此外,相比以前,用以回覆信息的輸入框的位置也發生了變化。它由以前依附在通知下方,變成了依附在鍵盤上方,這樣更方便文本信息的輸入等。此變化不只實現了在通知界面完成應答的操做,還強化了無需進入APP跳轉行爲的理念。
在內容擴展方面,iOS 10 還增長了端到端加密的功能,它讓App開發者能夠在展現通知以前增長一層處理邏輯,從而使端到端加密成爲可能,這意味着經由蘋果服務器的通知內容能夠是徹底的密文,而在此以前的 iOS 通知內容沒有加密功能。
四、通知查、改、刪
查、改、刪是 iOS 10 的新功能,實現該功能須要有一個必要參數——構建通知的 identifer,將其添加到推送 center 運行便可。後續的查、改、刪操做都是根據此參數來執行。遠程通知的更新須要經過新的字段 apns-collapse-id 來做爲惟一標示,如今它處於內部測試階段,相信很快也會支持起來。典型的應用場景,如賽事比分變動和通知的撤回。
五、增長應用內通知展現 API
應用內通知展現 API,即官方的應用內收到 APNs 通知並作UI展現的 API,用戶能夠經過此功能選擇接受或關閉通知。此 API 的優點在於,它能讓開發者更簡單的實現應用內展現通知的功能,而且統一點擊通知以後的事件。
通知展現另外一個新增項是常駐橫幅——在手機系統設置裏,能夠對不一樣的 APP 進行設置,以達到多種通知提示方式。APP 的通知是橫幅和提醒的樣式可由用戶自行選擇。引導用戶設置提醒樣式,會涉及到流程任務的信息,這樣的作好處是:第一,保證消息不會被忽略,第二,不會簡單粗暴地打斷用戶當前進行的操做。
六、WatchOS 支持本地通知
WatchOS 的特性使得 AppleWatch 能在脫離 iPhone 的狀況下獨立使用,它常被用於運動達成目前的記錄。
以上即爲 iOS 10 通知模塊的重要更新內容,但願廣大開發者能借由上述新特性作出更加優秀的 App。同時,感謝極光的開發工做人員,是他們日以繼夜的工做使得用戶能更好地體驗 iOS 10 的新特性。