2014-10-22 47 views
0

我知道這個問題是典型的,但我錯過了一些東西,我不知道是什麼。iOS 7 - didReceiveRemoteNotification:不在背景上觸發

我有一個簡單的應用程序,在iOS 7中。使用Xcode 6.我正在開發Objective-C。

我想接收推送通知並將我的應用程序圖標徽章更新爲(1),但當應用程序處於後臺時,我無法觸發didReceiveRemoteNotification方法,因此我無法設置徽章號碼。這不是我的第一個應用程序使用推送通知和徽章,但我不能這樣做...

我的代碼:

- (空)應用程序:(UIApplication的*)應用程序didReceiveRemoteNotification:(NSDictionary的*) USERINFO

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
NSLog(@"RECEIVING NOTIFICATION"); 

當我在該應用程序的徽章正確設置好的並打印日誌,但是如果我在後臺模式是不會被觸發的方法。

我載荷APNS

{"aps":{"alert":"New push","sound":"default"}} 

我想設置的徽章manualy爲1。我並不需要它去有效載荷。

有什麼建議嗎? 謝謝

+2

您不需要通過代碼設置徽章,如果您在aps中添加了「徽章」,它將自動設置。 – KudoCC 2014-10-22 09:58:41

+0

好吧,你是對的...請回答我的問題,我會檢查你的答案是否正確;)號碼爲 – pekpon 2014-10-22 10:07:16

回答

1

遠程通知將根據aps中「徽章」的數量自動設置徽章。

例如:

{"aps":{"alert":"New push","sound":"default","badge":1}}

1

晚了一些,但它可能會幫助別人。

可以觸發- application:didReceiveRemoteNotification:當你的應用程序在後臺使用以下兩個步驟:響應

  1. 設置所需的背景模式應用軟件下載的內容,推動在Info.plist文件通知
  2. "content-available": 1添加到您的通知負載。

這將調用- application:didReceiveRemoteNotification:並允許您在後臺處理通知(即刷新應用程序的內容等)。

希望這會有所幫助!

+0

是否有類似的Firebase(如果你熟悉Firebase) – Ahmadiah 2018-01-03 23:58:11

+0

對不起,我還沒有試過Firebase然而。但是,這應該是iOS特定的,而不是綁定到您的通知服務。如果它不適用於Firebase,我會感到驚訝。 – Performat 2018-01-30 10:01:29