我正在使用 Firebase Cloud Messaging 在我的 Android 和 iOS 应用程序中发送数据有效负载和显示通知。我正在将它集成到我的 iOS 应用程序中,并且遇到了一件奇怪的事情。
我的通知服务器只发送数据消息(我的意思是包含“数据”字段而没有“通知”字段的 JSON 消息)。在我的 Android 应用程序中,这不是问题,因为即使我的应用程序在我的Service实现中处于后台,我也会收到消息,并且我手动构建了显示的通知。但是在 iOS 的情况下,当我的应用程序在后台执行相同操作时,我如何接收消息?我的意思是如果我在我的请求中添加一个“通知”字段,我会在我的屏幕上看到通知弹出(当应用程序处于后台时)并且我可以在我的应用程序处于单击状态时获得数据(位于“数据”字段中)前景。
但是当我的应用程序在后台手动显示通知时,我可以拥有数据吗?
显示通知的内容应该在应用程序端而不是服务器端构建,因为服务器没有足够的信息,这就是为什么我不能在我的有效负载消息中发送“通知”字段。
谢谢
编辑:我使用这个链接解决了(部分)这个问题。不久,我在后台模式下启用了后台获取和远程通知(并添加到有效负载中)。然后我可以处理接收到的数据但现在它仍然是一件事:当我的应用程序被杀死时如何使其工作?content_available : truedidReceiveRemoteNotification:
编辑 2:我发现了一些可能是这样的东西:那个. 修改远程通知的有效负载意味着在显示之前处理传入的通知。我会尽力。
编辑 3: Firebase 不支持使我在EDIT 2 中找到的解决方案所需的可变内容键。关于那个的讨论是here。所以......有什么想法吗?
android push-notification ios firebase firebase-cloud-messaging
它说,在c ++核心指南中
这些指南是根据"超集子集"原则(Stroustrup05)设计的.它们不是简单地定义要使用的C++子集(用于可靠性,安全性,性能等).相反,他们强烈建议使用一些简单的"扩展"(库组件),这些扩展使得C++中容易出错的最容易出错的特性使用,因此可以禁止它们(在我们的规则集中).
什么是"超集子集"原则?