轉(zhuǎn)的推送功能

iOS的推送功能包括:遠(yuǎn)程推送以及本地推送,從iOS4到目前的iOS10禾怠,推送功能經(jīng)歷了多個版本的修改×赘現(xiàn)在做一個總結(jié):

基本已iOS8以及iOS10作為分界點崖堤,目前分為3個階段,[iOS4,iOS8.0),[iOS8.0-iOS10.0),[iOS10.0-x]柠并,至于最早是不是iOS4.0開始有推送的岭接,我不得而知,接觸的最早的iOS系統(tǒng)就是4.0開始的臼予。暫且這么認(rèn)為吧鸣戴。

在第一個階段的時候,[iOS4.0-iOS8.0)粘拾,本地推送是附加與遠(yuǎn)程推送的窄锅,也就是說:申請了遠(yuǎn)程推送則自然而然就擁有了本地推送,并且推送權(quán)限的獲取與deviceToken的獲取在同一個API里缰雇,一次做完入偷。

第二個階段,[iOS8.0械哟,iOS10.0)疏之,做了一些改進(jìn),本地推送與遠(yuǎn)程推送稍作區(qū)分暇咆,并且推送權(quán)限的獲取與deviceToken的獲取分離為兩個流程:先獲取推送權(quán)限锋爪,在推送權(quán)限的代理回調(diào)方法中 根據(jù)獲取到權(quán)限與否,再進(jìn)行是否獲取deviceToken的流程操作爸业。并且推送功能增加了 推送消息的快捷處理功能:預(yù)覽完整消息其骄,快捷回復(fù)某個推送消息,而不用進(jìn)入對應(yīng)的App去處理沃呢,當(dāng)然需要App事先做好與推送消息的交互類型的約定與處理邏輯年栓。

第三個階段,[iOS10.0,x)薄霜,將推送功能模塊化某抓,從UIKit中的UIApplication里分出,做成獨立的框架UserNotification.framework,等系列模塊惰瓜。與前一個不同的地方是:推送通知可以分離出UIApplicationDelegate獨立在某個業(yè)務(wù)處理中心否副,而不必在UIApplicationDelegate里一堆代碼,并且將本地推送與遠(yuǎn)程推送表面上合并:開發(fā)者不必關(guān)心是什么推送崎坊,接口上都是一樣的是由于在用戶看來:推送表現(xiàn)都是一樣的备禀,在桌面 下拉一個消息出來。所以在這一點來說有點回歸,還有一個不同曲尸,推送權(quán)限的獲取成功與否不是在代理回調(diào)中處理赋续,而是在block中處理,然后deviceToken的流程是一樣的另患,并且獲取deviceToken仍是在UIApplicationDelegate里面做纽乱,這個自始至終到現(xiàn)在都沒變,可能以后會移到UserNotification模塊吧昆箕。目前推送功能仍是不完善的鸦列,還是比較混亂:各位可以做個實驗,iOS10.x系統(tǒng)鹏倘,利用UserNotificationCenter添加幾個CaledarTrigger類型的簡單的(不帶交互與附件)本地通知薯嗤,本地推送通知觸發(fā)后,桌面下拉消息出現(xiàn)纤泵,如果點擊此消息則激活A(yù)pp骆姐,此時進(jìn)入的函數(shù)是

- (void)userNotificationCenter:(UNUserNotificationCenter?*)center didReceiveNotificationResponse:(UNNotificationResponse?*)response withCompletionHandler:(void(^)())completionHandler;而如果你的App本身就是在前臺的時候夕吻,進(jìn)入的函數(shù)卻是

-(void)application:(UIApplication?*)application didReceiveLocalNotification:(UILocalNotification?*)notification诲锹,而這個函數(shù)卻被標(biāo)記為deprecated。如果添加的是帶交互的本地通知涉馅,估計回調(diào)的API仍是不同的(App本身就在前臺與App進(jìn)入后臺被推送消息交互激活)。

特別是為了做iOS系統(tǒng)版本兼容的稚矿,可真是“男朋友漏電啊”。

目前手頭只有一個iOS10.x的設(shè)備與一個iOS8.x設(shè)備捻浦,XCode也是6.x的晤揣,所以比較老的iOS系統(tǒng):比方8.0以前的,我已無法驗證朱灿,也無法做實驗了(xcode版本比較新昧识,老的API有些就看不到了),只是憑記憶來做總結(jié)盗扒。

我的App里目前需要支持iOS7以及以后系統(tǒng)的推送功能跪楞,所以就需要仔細(xì)處理。也僅僅是憑記憶和某些帖子來做了侣灶,如果用戶反饋問題不多甸祭,那基本就這樣沒問題的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末褥影,一起剝皮案震驚了整個濱河市池户,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖校焦,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赊抖,死亡現(xiàn)場離奇詭異,居然都是意外死亡寨典,警方通過查閱死者的電腦和手機氛雪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凝赛,“玉大人注暗,你說我怎么就攤上這事∧沽裕” “怎么了捆昏?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長毙沾。 經(jīng)常有香客問我骗卜,道長,這世上最難降的妖魔是什么左胞? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任寇仓,我火速辦了婚禮,結(jié)果婚禮上烤宙,老公的妹妹穿的比我還像新娘遍烦。我一直安慰自己,他們只是感情好躺枕,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布服猪。 她就那樣靜靜地躺著,像睡著了一般拐云。 火紅的嫁衣襯著肌膚如雪罢猪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天叉瘩,我揣著相機與錄音膳帕,去河邊找鬼。 笑死薇缅,一個胖子當(dāng)著我的面吹牛危彩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捅暴,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼恬砂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蓬痒?” 一聲冷哼從身側(cè)響起泻骤,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤漆羔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后狱掂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體演痒,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年趋惨,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸟顺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡器虾,死狀恐怖讯嫂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兆沙,我是刑警寧澤欧芽,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站葛圃,受9級特大地震影響千扔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜库正,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一曲楚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褥符,春花似錦龙誊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抡蛙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間魂迄,已是汗流浹背粗截。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捣炬,地道東北人熊昌。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像湿酸,于是被迫代替她去往敵國和親婿屹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

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