iOS消息推送接收處理

首先要說明兩個(gè)概念:本地通知和遠(yuǎn)程推送。本地通知是由本地應(yīng)用觸發(fā)的,接收會比較及時(shí)。遠(yuǎn)程推送是通過蘋果的APNs發(fā)送到應(yīng)用客戶端的。

以下有處理推送的三種狀態(tài):

一.APP沒有被殺掉進(jìn)程的時(shí)候,會根據(jù)是本地通知還是遠(yuǎn)程推送來調(diào)用不同的函數(shù)

//本地通知

-(void)application:(UIApplication*)application didReceiveLocalNotification:(UILocalNotification*)notification {

...

}

//遠(yuǎn)程推送

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {

...

}

//遠(yuǎn)程推送時(shí)蘋果官方文檔更推薦使用這個(gè)

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler

{

}

二.APP在殺掉進(jìn)程的時(shí)候,當(dāng)我們通過通知進(jìn)入APP時(shí),會調(diào)用下面的函數(shù)

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

//檢查是否從通知啟動

if(launchOptions)

{

NSDictionary* remoteNotification=[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

NSLog(@"remoteNotification%@",remoteNotification);

}

}

三.判斷接收消息時(shí)的狀態(tài)

//當(dāng)應(yīng)用程序在激活狀態(tài)時(shí)接到通知,會是如下狀態(tài)

if(application.applicationState == UIApplicationStateActive) {

...

//當(dāng)應(yīng)用程序在后臺掛起時(shí)接到通知,用戶進(jìn)入應(yīng)用后,會是如下狀態(tài)

}else if(application.applicationState == UIApplicationStateInactive) {

...

}

在我們了解了以上三點(diǎn)后,就可以根據(jù)不同的情況處理推送消息了。

天倫物業(yè)項(xiàng)目的要求是不管APP在什么狀態(tài)點(diǎn)擊推送都要跳轉(zhuǎn)到相應(yīng)的頁面,這個(gè)時(shí)候我們通過第一點(diǎn)和第二點(diǎn)會調(diào)用的函數(shù),解析收到的消息字典獲取不同的type值,做相應(yīng)的跳轉(zhuǎn)。

我完成的仟詢項(xiàng)目的要求是APP在活躍狀態(tài)下是不處理推送的,我們接收到消息的情況下,可以通過第三點(diǎn)來判斷APP狀態(tài)做相應(yīng)的處理

文/zyh1158(簡書作者)

原文鏈接:http://www.itdecent.cn/p/4126ce0fe13f

著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),并標(biāo)注“簡書作者”。

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

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

  • 結(jié)合最近做的項(xiàng)目來總結(jié)一下,在我們接收到推送通知后我們將要怎么處理這條推送消息,也為以后再做相關(guān)推送的時(shí)候能...
    zyh1158閱讀 3,414評論 6 14
  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開發(fā)除了正常的功能完善和擴(kuò)展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,884評論 10 16
  • 推送通知 注意:這里說的推送通知跟NSNotification有所區(qū)別 NSNotification是抽象的,不可...
    iOS開發(fā)攻城獅閱讀 4,419評論 1 13
  • 推送通知注意:這里說的推送通知跟NSNotification有所區(qū)別NSNotification是抽象的,不可見的...
    醉葉惜秋閱讀 1,618評論 0 3
  • 不同版本極光推送SDK集成各有差異,集成時(shí)一定要注意版本號,樓主已將博文更新成最新的SDK JPush v3.0....
    i順頌時(shí)宜閱讀 8,019評論 37 170

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