iOS 10 通知 + 推送 初級篇(一)

一澈蟆、簡單介紹:

iOS 10 中 通知 有了新的改變:?

? ? ?首先:第一個更新點(diǎn)就是:新加了一個獨(dú)立框架:UserNotification.framework,(之前一直存在于UIKit.framework中),在iOS 10中廢棄了 UILocalNotification(也在UIKit.framework中)這個類役拴,采用了全新的UserNotifications.framework來推送通知籍铁,從此推送通知也有了自己的標(biāo)簽UN(這待遇真是沒別人了),以及對推送功能的一系列增強(qiáng)改進(jìn)(兩個extension (?k?st?n?(?)n,延展)和界面的體驗(yàn)優(yōu)化)厘擂。


? ? 我們從字面翻譯 UserNotification.framework 應(yīng)該翻譯成“用戶通知框架”,而通常大家所了解的“推送”翻譯成英文應(yīng)該是“Push”济锄,?“Push”其實(shí)只是[通知]觸發(fā)的一種方式绒净,而[通知]其實(shí)是操作系統(tǒng)層面的一種UI展示。


蘋果官方文檔中Notification分為兩類: ??

- Remote (遠(yuǎn)程洽议,即Push方式宗收,(r??m??t,遙遠(yuǎn)的))

- Local (本地,通知由本地事件觸發(fā)亚兄,iOS10中有三種不同的觸發(fā) "Trigger"(?tr?ɡ?r ?觸發(fā)因素)方式混稽,下面有詳細(xì)說明)

所以,[推送]只是[通知]的一種觸發(fā)方式审胚,


? ? ? ? 而從iOS迭代更新的歷史特征中看匈勋,[通知]應(yīng)該是是被蘋果作為一個重點(diǎn)內(nèi)容來延展的。( ? “推送通知”從最初的單純展示和簡單回調(diào)膳叨,到Backgroud的支持洽洁,以及后來整體的Payload(?pe??lo?d裝載量)的長度由256字節(jié)擴(kuò)展到2K再到4K,再到這次iOS10 的獨(dú)立框架和豐富的特性更新; //?或者換一個角度來說:從iOS3開始出現(xiàn)推送通知,每一年都會更新一些新的用法.?到iOS7出現(xiàn)的Silent remote notifications(遠(yuǎn)程靜默推送)(?s??l?nt,無聲的),?接著iOS8出現(xiàn)的Category(分類,也可稱之為快捷回復(fù)), ?之后iOS9出現(xiàn)的Text Input action(文本框快捷回復(fù)). ?而現(xiàn)在iOS10,蘋果對遠(yuǎn)程通知和本地通知進(jìn)行了大范圍的更新. iOS10推出了全新的UserNotifications框架(iOS10之前從屬于UIKit框架). ?并且新的推送通知框架,整合了本地推送和遠(yuǎn)程推送的點(diǎn)擊處理方法,使得以前專門處理推送點(diǎn)擊的方法只能處理靜默推送了.?所以不難看出“通知”改變也是蠻大的菲嘴。


(注:通知就代表本地通知饿自,推送就代表遠(yuǎn)程服務(wù)器的推送。)

iOS 10中改變?nèi)缦拢?/p>

1龄坪、Familiar API with feature parity ?//相同的特性使用類似API(之前的功能API使用方法類似但是還是稍有改變)

2昭雌、Expanded content //內(nèi)容擴(kuò)展(支持附件和展示更多內(nèi)容)

3、Same code path for local and remote notification handling ?//本地通知和遠(yuǎn)程通知操作代碼在相同調(diào)用路徑(合并代理方法)

4健田、Simplified delegate methods //簡化代理方法

5烛卧、Better notification management ? ?//更好的通知管理(支持通知查、改妓局、刪总放;增強(qiáng)本地通知管理雳旅,增加日歷與地理位置事件的觸發(fā))

6、In-app presentation option //應(yīng)用內(nèi)通知展示(之前App在前臺的情況下收到通知不會UI展示)

7间聊、Schedule and handle notifications in extensions ??//在Extensions中規(guī)劃和操作通知(使更新通知內(nèi)容和刪除誤發(fā)或過期的通知內(nèi)容成為可能攒盈,另一個重要場景為端到端加密)

8、Notification Extensions //引入通知Extensions


二哎榴、從手機(jī)端角度(具體展示)來看“通知更新”

1型豁、增加Subtitle

Subtitle樣式和展示位置如圖一所示:

圖一

Subtitle的加入給內(nèi)容類App帶來了福音,交給優(yōu)秀編輯和策劃去使用應(yīng)該是一項(xiàng)利器尚蝌。


2迎变、增加Attachments(??t?t?m?nts 附加裝置 附件)

通過類似之前的content_available參數(shù)的mutable-content參數(shù)來控制是否增加Attachments,需要開發(fā)者實(shí)現(xiàn)NotificationServiceExtension來展示帶有Attachments的通知飘言,需要注意的一點(diǎn)是衣形,本地通知的話只能使用本地的資源,遠(yuǎn)程通知需要服務(wù)端發(fā)送URL給NotificationServiceExtension去預(yù)先執(zhí)行下載操作姿鸿,當(dāng)然如果在網(wǎng)絡(luò)不太通暢的情況下蘋果也提供了超時時間和超時之后的后續(xù)操作讓開發(fā)者在這種情況下也能適當(dāng)?shù)恼故就ㄖ晃猓瑥亩岣咄ㄖ换ンw驗(yàn)。?Attachments的加入也可以讓你更好的對發(fā)給用戶的通知進(jìn)行分類苛预。如下圖:

圖二

3句狼、新增本地通知Triggers(?tr?ɡ?r 觸發(fā)因素)

在本地通知新增了兩種新的Triggers,

(1)就是日歷和地理位置热某。日歷的話就是讓開發(fā)者可以根據(jù)指定的日期和時間來展示本地通知腻菇,并且支持循環(huán)條件,比如“每周二上午十一點(diǎn)”這種條件昔馋。

(2)地理位置的話就是在進(jìn)入或者離開指定區(qū)域來觸發(fā)這條本地通知筹吐,該特性讓iOS通知的地理圍欄觸發(fā)有了實(shí)現(xiàn)的可能,比如“某品牌App在你進(jìn)入該品牌線下店鋪的范圍內(nèi)即展示最新優(yōu)惠信息”等秘遏。

典型場景:循環(huán)提醒丘薛、地理圍欄


4、內(nèi)容擴(kuò)展顯示

如果設(shè)備支持3DTouch的話用力按壓通知即可進(jìn)入內(nèi)容擴(kuò)展頁面垄提,此頁面會可以由開發(fā)者自定義展示內(nèi)容榔袋,可以是之前Attachments的內(nèi)容比如圖片視頻,也可以是開發(fā)者自己定義的布局內(nèi)容铡俐,同時也支持在內(nèi)容擴(kuò)展頁面增加更多的自定義ActionButton凰兑。但是,個人認(rèn)為有一些遺憾的是擴(kuò)展內(nèi)容幾乎不支持交互审丘,交互就只能放到ActionButton里面了吏够。如下圖三 圖四:

圖三
圖四

5、通知的查、改锅知、刪

實(shí)現(xiàn)該功能需要有一個必要參數(shù)就是構(gòu)建通知的identifer播急,后續(xù)的查改刪操作都是根據(jù)此參數(shù)去執(zhí)行的。 ?典型的應(yīng)用場景:賽事比分變更售睹、通知撤回 ?如圖:

圖五

三桩警、對于開發(fā)者來說

6、增加Service Extension

讓App開發(fā)者可以在展示通知之前增加一層處理邏輯昌妹,從而使端到端加密成為可能捶枢,也就意味著經(jīng)由蘋果的服務(wù)器的通知內(nèi)容可以是完全的密文,在這之前iOS上實(shí)現(xiàn)通知內(nèi)容加密是沒有任何可能的飞崖。 ?典型應(yīng)用場景:端到端加密烂叔、添加Attachments ?如圖六:

圖六

7、獲取通知相關(guān)設(shè)置信息API

可以通過API獲取到用戶設(shè)置該App相關(guān)于推送通知的設(shè)置的詳細(xì)列表固歪,該信息的統(tǒng)計(jì)可以讓App的開發(fā)者更好的根據(jù)用戶的通知使用習(xí)慣來改進(jìn)通知的策略蒜鸡。如圖7:

圖 七

8、增加應(yīng)用內(nèi)通知展示API

提供官方的應(yīng)用內(nèi)收到APNs通知并做UI展示的API牢裳,在此之前如果想做此類功能需要開發(fā)者自己開發(fā)功能逢防,此API的優(yōu)勢在于讓開發(fā)者更簡單的實(shí)現(xiàn)應(yīng)用內(nèi)展示通知的功能并且統(tǒng)一點(diǎn)擊通知之后的事件。


(以上對大牛們的總結(jié)以及添加了自己的看法贰健,希望對大家的技術(shù)有所幫助0摹)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伶椿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌氓侧,老刑警劉巖脊另,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異约巷,居然都是意外死亡偎痛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門独郎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來踩麦,“玉大人,你說我怎么就攤上這事氓癌∥角” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵贪婉,是天一觀的道長反粥。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么才顿? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任莫湘,我火速辦了婚禮,結(jié)果婚禮上郑气,老公的妹妹穿的比我還像新娘幅垮。我一直安慰自己,他們只是感情好尾组,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布军洼。 她就那樣靜靜地躺著,像睡著了一般演怎。 火紅的嫁衣襯著肌膚如雪匕争。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天爷耀,我揣著相機(jī)與錄音甘桑,去河邊找鬼。 笑死歹叮,一個胖子當(dāng)著我的面吹牛跑杭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咆耿,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼德谅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了萨螺?” 一聲冷哼從身側(cè)響起窄做,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慰技,沒想到半個月后椭盏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吻商,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年掏颊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艾帐。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡乌叶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柒爸,到底是詐尸還是另有隱情准浴,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布揍鸟,位于F島的核電站兄裂,受9級特大地震影響句旱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晰奖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一谈撒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匾南,春花似錦啃匿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至豹爹,卻和暖如春裆悄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臂聋。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工光稼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人孩等。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓艾君,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肄方。 傳聞我的和親對象是個殘疾皇子冰垄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容