借閱:http://www.itdecent.cn/p/51c540b403f6
客戶端對(duì)推送消息的處理分兩種情況:
一、在App沒有運(yùn)行的情況下
系統(tǒng)收到推送消息,用戶點(diǎn)擊推送消息,啟動(dòng)App。此時(shí),不會(huì)執(zhí)行前面提到的 didReceiveRemoteNotification函數(shù),而是在App的applicationDidFinishLaunching函數(shù)中處理推送,通過以下代碼可以獲取推送消息中的數(shù)據(jù): NSDictionary *userInfo =[launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
二、當(dāng)APP處于前臺(tái)時(shí)
系統(tǒng)收到推送消息,此時(shí)系統(tǒng)不會(huì)彈出消息提示,會(huì)直接觸發(fā)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo函數(shù),推送數(shù)據(jù)在userInfo字典中。
三、當(dāng)App處于后臺(tái)時(shí)
如果系統(tǒng)收到推送消息,當(dāng)用戶點(diǎn)擊推送消息時(shí),會(huì)執(zhí)行application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo函數(shù),
此時(shí)AppDelegate中函數(shù)執(zhí)行的順序?yàn)椋?/p>
applicationWillEnterForeground
application:didReceiveRemoteNotification
applicationDidBecomeActiveI