iOS推送

推送通知本身是iOS系統(tǒng)的行為,所以在APP沒有運(yùn)行(沒有再前臺(tái)也沒有再后臺(tái))的時(shí)候,任然能夠推送或接受

收到推送的時(shí)候無(wú)法獲取到內(nèi)容,點(diǎn)擊通知之后能跳轉(zhuǎn)到APP中,可以獲取到推送中帶過(guò)來(lái)的擴(kuò)展內(nèi)容

注冊(cè)推送服務(wù):

- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary)launchOptions
{ //注冊(cè)推送

if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
  [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert) categories:nil];
} 
else {
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert) categories:nil];
   }
}

在第一次出發(fā)這段代碼的時(shí)候,會(huì)有一個(gè)系統(tǒng)彈窗,詢問(wèn)你是否允許該APP要給你推送消息

允許:系統(tǒng)打包APP+手機(jī)唯一標(biāo)識(shí)+證書發(fā)送至APNs服務(wù)器注冊(cè)推送服務(wù)

注冊(cè)成功:

可以在此方法中獲取到deviceToken他是對(duì)(手機(jī)+APP)組合的唯一標(biāo)識(shí)

-(void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{ //獲取DeviceToken
    [JPUSHService registerDeviceToken:deviceToken];此為極光方法
}
 
推送通知的提醒
前臺(tái)收到:

系統(tǒng)會(huì)將內(nèi)容傳到didReceiveRemoteNotification

后臺(tái)收到:

· 開啟了RemoteNotification,系統(tǒng)執(zhí)行didReceiveRemoteNotification:fetchCompletionHandler方法

· 展示橫幅、通知中心、聲音、角標(biāo)

退出收到:

· 如果點(diǎn)擊推送橫幅、通知中心而啟動(dòng)APP,執(zhí)行didFinishLaunchingWithOptions方法

· 展示橫幅、通知中心、聲音、角標(biāo)

推送包含

本地通知:

APP指定推送時(shí)間,在該時(shí)間準(zhǔn)時(shí)彈出推送通知

遠(yuǎn)程通知:
1.普通推送

· 最常見的推送通知

· 包含聲音、橫幅、角標(biāo)、自定義字段

· APP: 處于前臺(tái),不展示橫幅,可通過(guò)didReceiveRemoteNotification(iOS7之前)或
didReceiveRemoteNotification:fetchCompletionHandler(iOS7之后)方法獲取內(nèi)容

· 處于后臺(tái)或退出,會(huì)展示橫幅,無(wú)法獲取通知內(nèi)容

· 點(diǎn)擊橫幅啟動(dòng),在didFinishLaunchingWithOptions方法獲取內(nèi)容

2.后臺(tái)推送

· 各種顯示效果如普通推送效果

· 必須攜帶"content-avaliable"=1;

· 必須攜帶alert,badge,sound中至少一個(gè)字段(后臺(tái)如果不給,前臺(tái)就沒有任何聲音)

· 必須在xcode工程中開啟notifications的功能

· APP

1.處于前臺(tái)或退出與普通推送效果一致

2.處于后臺(tái),可通過(guò)didReceiveRemoteNotification:fetchCompletionHandler獲取通知內(nèi)容,獲取情況與普通推送不同的是,此時(shí)iOS系統(tǒng)允許開發(fā)者在APP處于后臺(tái)的情況下執(zhí)行代碼

3.靜默推送

· 沒有任何展示效果

· 必須攜帶"content-avaliable"=1;因此靜默必然是后臺(tái)的

· 不能攜帶alert、badge、sound任何字符

· 可攜帶自定義字段

· APP :效果與后臺(tái)推送效果一直

第三方推送

1.廣播 :

無(wú)差別的發(fā)給所有的用戶

2.別名(alias):

· 第三方提供的功能

· 每個(gè)手機(jī)只能設(shè)置一個(gè)別名alias

· 僅指定alias的用戶能收到推送,不再限制于手機(jī)

3.標(biāo)簽(tag):

· 第三方提供

· 可以設(shè)置多個(gè)、可增加、清空

· 用于指定多樣的屬性,如"1000"+"daily"+"discount" 可用于標(biāo)簽月消費(fèi)超過(guò)1K,喜歡購(gòu)買日用品、偏好折扣商品的用戶

· 如果要?jiǎng)h除,需要在上次設(shè)置的時(shí)候,講設(shè)置的tags保存至NSUserDefaults本次剔除不需要的tag之后,再重新設(shè)置

· 推送時(shí)可指定多個(gè)tag來(lái)統(tǒng)一發(fā)送內(nèi)容

4.Resgistration ID :

· 第三方提供

· 在講deviceToken提供給第三方之后,其服務(wù)器會(huì)自動(dòng)生成的志向該手機(jī)的唯一id

· 可用于對(duì)核心用戶、期間用戶的精準(zhǔn)推送

應(yīng)用內(nèi)消息

· 不需要證書

· 由第三方服務(wù)器下發(fā),而不是APNs

· 比通知快,不延遲,可用于IM消息的即時(shí)送達(dá)

· 能夠長(zhǎng)時(shí)間保留離線消息,可獲取所有歷史消息內(nèi)容

· 能夠長(zhǎng)連接技術(shù)下發(fā)消息 手機(jī)必須啟動(dòng)并與第三方服務(wù)器建立連接

· 如果手機(jī)啟動(dòng)立刻切換到后臺(tái),很可能沒有建立連接

· 手機(jī)必須處于前臺(tái)才能接收消息

· 手機(jī)從后臺(tái)切回前臺(tái),才會(huì)自動(dòng)重新建立連接,并收到離線消息

· 沒有任何展示 只能自己實(shí)現(xiàn)UI效果

· 完全靜默情況下處理APP內(nèi)部邏輯

· AppStore審核必須關(guān)閉一些功能,上架后再通過(guò)后臺(tái)開啟

通知 與 消息對(duì)比

通知 消息
送達(dá)時(shí)間 可能存在幾秒的延遲 無(wú)延遲
獲取時(shí)間 前臺(tái)或后臺(tái) 僅前臺(tái)
離線內(nèi)容 保留一段時(shí)間,無(wú)法查詢歷史內(nèi)容 始終保留,可查詢?nèi)繗v史內(nèi)容
系統(tǒng)展示 靜默或處于前臺(tái)不展示,后臺(tái)或退出展示角標(biāo)、聲音、橫幅 不展示

QQ/微信聊天

同時(shí)下發(fā)一組通知 + 消息,如果用戶沒有啟動(dòng)APP,雖然有延遲,但是必然能夠收到通知,在通知的提醒之后,用戶打開APP,此時(shí)收到離線消息,及時(shí)更新UI

參考:iOS 推送全解析,你不可不知的所有 Tips!(完整版)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,687評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,682評(píng)論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,011評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評(píng)論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,183評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,714評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,435評(píng)論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,665評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,838評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,379評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,627評(píng)論 2 380

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

  • 本文旨在對(duì) iOS 推送進(jìn)行一個(gè)完整的剖析,如果你之前對(duì)推送一無(wú)所知,那么在你認(rèn)真地閱讀了全文后必將變成一個(gè)推送老...
    逆光少年閱讀 2,163評(píng)論 1 21
  • 本文旨在對(duì) iOS 推送進(jìn)行一個(gè)完整的剖析,如果你之前對(duì)推送一無(wú)所知,那么在你認(rèn)真地閱讀了全文后必將變成一個(gè)推送老...
    pikacode閱讀 27,856評(píng)論 91 290
  • 準(zhǔn)備篇 Tip 1:推送通知(Push Notification)必須購(gòu)買Apple開發(fā)者賬號(hào),并使用特定的推送證...
    AngeloD閱讀 1,342評(píng)論 0 1
  • 簡(jiǎn)介 APNs 是 Apple Push Notification service 的簡(jiǎn)稱 蘋果推送通知服務(wù)為...
    uubird閱讀 4,426評(píng)論 0 2
  • 總體內(nèi)容1.推送通知的介紹2.本地通知3.遠(yuǎn)程通知4.極光推送的使用 一、推送通知的介紹 1.1、推送通知的作用:...
    IIronMan閱讀 5,195評(píng)論 4 34