【问题标题】:iOS 7 - didReceiveRemoteNotification: not triggering on backgroundiOS 7 - didReceiveRemoteNotification:不在后台触发
【发布时间】:2014-12-17 17:48:15
【问题描述】:

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

我有一个简单的应用程序,在 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。我不需要在负载上使用它。

有什么建议吗? 谢谢

【问题讨论】:

  • 你不需要通过代码设置徽章,如果你在你的aps中添加badge,它会自动设置。
  • 好的,你是对的......请回答我的问题,我会检查你的答案是否正确;)

标签: ios objective-c xcode


【解决方案1】:

远程通知会根据aps中“徽章”的数量自动设置徽章。

例如:

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

【讨论】:

  • 我正在向有大量用户的频道发送消息。我没有每个用户的未读消息数。我该如何处理?
【解决方案2】:

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

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

  1. 在您的Info.plist 文件中将必需的后台模式设置为应用下载内容以响应推送通知
  2. "content-available": 1 添加到您的通知负载中。

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

希望这会有所帮助!

【讨论】:

  • 对于数字 2,Firebase 中是否有类似的东西(如果您熟悉 Firebase)
  • 抱歉,我还没有尝试过 Firebase。但是,这应该是 iOS 特定的,而不是绑定到您的通知服务。如果它不适用于 Firebase,我会感到惊讶。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多