iOS 推送

1、推送的實現(xiàn)流程和原理:

用戶打開app之后,會將唯一標識devicesToken(APNs與設(shè)備建立長鏈接之后下發(fā)的)發(fā)送給服務(wù)器,當有推送消息時,服務(wù)器將devicesToken和要推送的內(nèi)容發(fā)送給APNs,蘋果APNs會和設(shè)備進行長鏈接,將內(nèi)容推送給設(shè)備,設(shè)備根據(jù)標識,找到要推送的app,顯示推送內(nèi)容。

2、iOS7和iOS8推送不同的地方:

第一點:iOS8之后初始化遠程推送的接口改變,需要生成UIUserNotificationSetting,獲取用戶權(quán)限之后才能注冊遠程推送,而且可以引導用戶到開啟遠程推送的頁面,重新開啟推送權(quán)限。

第二點:發(fā)送消息內(nèi)容長度限制,iOS7是256字節(jié),iOS8是2kb,iOS9是4kb,可以看出蘋果在推送方面正在一步步做改進。

第三點:iOS8之后可以給推送添加action,下拉推送消息,可以選擇按鈕,然后進行不同的操作。

第四點:iOS8之后對voip推送的改進,為了不一直喚醒app增加耗電,蘋果給voip的推送單獨開了一個通道,和遠程推送并行的通道,進行voip推送,收到voip推送之后,開啟一個本地推送。

3、本地推送在一些app中也很重要,例如寫日記的場景,可以在app后臺運行特定時間后,給app發(fā)送一個本地推送,增加app的活躍度。第二個需要進行本地推送的時機是,app剛剛進入到后臺,這時候可以給用戶發(fā)送本地推送,iOS7之前可以后臺運行10分鐘,iOS8之后減少到了3分鐘,而且需要開啟后臺任務(wù)。

4、靜默推送,iOS7的時候有了靜默推送,是遠程推送的一種,靜默推送沒有聲音,相當于是一個后臺任務(wù),來喚醒app30s,局限性是,當用戶把app切換到后臺,并將app殺死,這時候就會收不到靜默推送。

靜默推送的運用場景,當有新的音樂需要推送的時候,就會發(fā)送一個靜默推送喚醒app,這時候就可以下載該音樂,然后才會給用戶發(fā)送一個遠程推送,用戶打開app,音樂已經(jīng)下載好了,就可以直接聽了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 現(xiàn)在第三方推送也很多 ,比如極光,融云,信鴿,其原理也是相同利用APNS推送機制 ,公司讓做自己的推送。避免...
    修_遠閱讀 11,019評論 9 19
  • 極光推送: 1.JPush當前版本是1.8.2,其SDK的開發(fā)除了正常的功能完善和擴展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,874評論 10 16
  • 注:此文只現(xiàn)在已經(jīng)不能適配iOS10了,iOS10推送采用了新的方法,做iOS9及以下的系統(tǒng)可讀此篇文章。 最近公...
    TIME_for閱讀 33,672評論 85 322
  • 推送通知 注意:這里說的推送通知跟NSNotification有所區(qū)別 NSNotification是抽象的,不可...
    iOS開發(fā)攻城獅閱讀 4,415評論 1 13
  • 一 通知的種類: 通知設(shè)計模式(NSNotification) 本地通知(UILocalNotifi...
    騎著毛驢走起來閱讀 974評論 0 1

友情鏈接更多精彩內(nèi)容