2015-01-02 62 views
0

我試圖在ios8上實現推送通知。當應用程序處於後臺並且推送通知命中設備時,哪個委託方法會打?當推送通知到達設備並且應用程序在後臺時是否有任何委託消息會被觸發?我可以在我的應用內讀取推送通知消息嗎?當靜默推送通知/推送通知命中設備時調用的委託方法

+0

在didreceiveremotenotification中,您可以記錄推送通知消息。 – sanjeet

+0

@sanjeet當應用程序在前景或背景? – user2533604

+0

在這兩個條件 – sanjeet

回答

0

委託方法,它告訴推送通知到達的應用程序,並表示有數據要獲取:-application:didReceiveRemoteNotification:fetchCompletionHandler:

是的,你可以讀取裏面的應用程序推送通知的消息,該數據是用戶信息的NSDictionary。

NSDictionary *aps = [userInfo objectForKey:@"aps"]; 
if ([alert isKindOfClass:[NSString class]]) { 
    NSLog(@"%@", alert); 
} else if ([alert isKindOfClass:[NSDictionary class]]) { 
    NSLog(@"%@", [alert objectForKey:@"body"]); 
} 

更多的信息在documentation

+0

我使用相同的委託方法。但僅當電池插入並且應用程序處於後臺時纔會觸及。當我拔掉電池,上面的委託方法沒有打。在某些情況下,我收到但在某些情況下,我沒有收到。 – user2533604

+0

@ user2533604如果您要在短時間內向同一設備或計算機發送多個通知,推送服務將只發送最後一個通知。點擊這裏查看更多信息:https://developer.apple.com/library/ios/technotes/tn2265/_index.html - 「收到一些通知,但不是全部」 – gvuksic