首页 文章

iOS 7 - didReceiveRemoteNotification:不在后台触发

提问于
浏览
0

我知道这个问题很典型,但是我错过了一些东西而且我不知道是什么 .

我在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 回答

  • 1

    远程通知将根据aps中的“徽章”数自动设置徽章 .

    例如:

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

  • 1

    有点晚了,但它可能会帮助别人 .

    您可以按照以下两个步骤在应用程序处于后台时触发 - application:didReceiveRemoteNotification:

    • Info.plist 文件中将 Required background modes 设置为 App downloads content in response to push notifications

    • "content-available": 1 添加到通知有效负载中 .

    这将调用 - application:didReceiveRemoteNotification: 并允许您在后台处理通知(即刷新应用程序的内容等) .

    希望这可以帮助!

相关问题