iOS 7 - didReceiveRemoteNotification:不在后台触发

时间:2014-10-22 09:49:32

标签: ios objective-c xcode

我知道这个问题是典型的,但我遗漏了一些东西而且我不知道是什么。

我在iOS 7中有一个简单的应用程序。使用Xcode 6.我正在开发objective-c。

我想接收推送通知并将我的应用图标徽章更新为(1)但是当应用在后台时我无法触发didReceiveRemoteNotification方法,因此我无法设置徽章编号。这不是我的推送通知和徽章的第一个应用程序,但我不能这样做......

我的代码:

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

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

当我在应用程序上时,徽章已正确设置并且日志已打印,但如果我处于后台模式,则不会触发该方法。

我的有效载荷APNS

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

我想将徽章手动设置为1.我在de payload上不需要它。

有什么建议吗? 感谢

2 个答案:

答案 0 :(得分:1)

远程通知会根据"徽章"的数量自动设置徽章。在aps。

例如:

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

答案 1 :(得分:1)

有点晚了,但它可能对其他人有帮助。

通过以下两个步骤,您可以在应用处于后台时触发- application:didReceiveRemoteNotification:

  1. Info.plist文件
  2. 中将所需的背景模式设置为应用下载内容以响应推送通知
  3. "content-available": 1添加到您的通知有效内容中。
  4. 这将调用- application:didReceiveRemoteNotification:并允许您在后台处理通知(即刷新应用内容等)。

    希望这有帮助!