我正在尝试使用Firebase向我的应用发送后台推送通知。 iOS显示通知正常,但我的-application:didReceiveRemoteNotification:fetchCompletionHandler:
未调用AppDelegate
。
当设备连接到调试器时,我会在设备收到通知时收到以下日志消息。
2016-07-27 15:13:08.234:FIRMessaging在无效状态2中接收通知
2016-07-27 15:13:08.234 MyApp [2513:1130209]警告:应用程序委托收到对-application的调用:didReceiveRemoteNotification:fetchCompletionHandler:但是从未调用完成处理程序。
我认为Firebase正在调整-application:didReceiveRemoteNotification:fetchCompletionHandler:
,但未能调用我的实现,因为它认为应用程序处于无效状态,而不是。
对于应该导致问题的通知有效负载,Theres也没什么特别的。
{
gcm.message_id: 0:1469652824137045%3aef914a3aef914a,
objectId: 7,
aps: {
alert: "Your object has been updated"
content-available: 1
}
}
为什么Firebase说该应用处于无效状态且无法将通知转发给我的AppDelegate
?
答案 0 :(得分:0)
我认为您可能误解了错误 - 发生此错误是因为您的应用didReceiveRemoteNotification
处理程序 被调用。
问题可能出在您的didReceiveRemoteNotification
处理程序中,您需要确保使用正确的completionHandler
类型调用UIBackgroundFetchResult
。 (如果你在Swift中,它可能看起来像completionHandler(.NewData)
。)
这基本上是你的应用程序的方式让iOS知道它已经完成了你发送远程通知时你想做的任何工作。如果您不这样做,iOS将对您的应用程序感到不满,并可能在将来停止转发通知。