Android 和 iOS 之间关于数据消息的 FCM 差异

N0u*_*0un 5 android push-notification ios firebase firebase-cloud-messaging

我正在使用 Firebase Cloud Messaging 在我的 Android 和 iOS 应用程序中发送数据有效负载和显示通知。我正在将它集成到我的 iOS 应用程序中,并且遇到了一件奇怪的事情。

  • 短篇故事:

我的通知服务器只发送数据消息(我的意思是包含“数据”字段而没有“通知”字段的 JSON 消息)。在我的 Android 应用程序中,这不是问题,因为即使我的应用程序在我的Service实现中处于后台,我也会收到消息,并且我手动构建了显示的通知。但是在 iOS 的情况下,当我的应用程序在后台执行相同操作时,我如何接收消息?我的意思是如果我在我的请求中添加一个“通知”字段,我会在我的屏幕上看到通知弹出(当应用程序处于后台时)并且我可以在我的应用程序处于单击状态时获得数据(位于“数据”字段中)前景。

但是当我的应用程序在后台手动显示通知时,我可以拥有数据吗?

  • 重要精度:

显示通知的内容应该在应用程序端而不是服务器端构建,因为服务器没有足够的信息,这就是为什么我不能在我的有效负载消息中发送“通知”字段。

谢谢

编辑:我使用这个链接解决了(部分)这个问题。不久,我在后台模式下启用了后台获取远程通知(并添加到有效负载中)。然后我可以处理接收到的数据但现在它仍然是一件事:当我的应用程序被杀死时如何使其工作?content_available : truedidReceiveRemoteNotification:

编辑 2:我发现了一些可能是这样的东西:那个. 修改远程通知的有效负载意味着在显示之前处理传入的通知。我会尽力。

编辑 3: Firebase 不支持使我在EDIT 2 中找到的解决方案所需的可变内容键。关于那个的讨论是here。所以......有什么想法吗?