我正在使用Firebase Cloud Messaging在我的Android和iOS应用中发送数据有效负载和显示通知。我正在将它集成到我的iOS应用程序中,而我正处于一个好奇的事情面前。
我的通知服务器只发送数据消息(我的意思是包含“数据”字段且没有“通知”字段的JSON消息)。在我的Android应用程序中,这不是问题,因为即使我的应用程序在我的Service
实现中处于后台并且我手动构建我显示的通知,我也会收到该消息。但在iOS案例中,当我的应用程序在后台运行时,如何才能收到消息?我的意思是,如果我在我的请求中添加“通知”字段,我会在屏幕上看到通知(当应用程序处于后台时),我可以在我的应用程序进入后单击后获取数据(位于“数据”字段中)前景。
但是,当我的应用在后台手动显示通知时,我可以获取数据吗?
显示的通知的内容应该是应用程序端而不是服务器端,因为服务器没有足够的信息,这就是我无法在有效负载消息中发送“通知”字段的原因。
由于
编辑:我使用this link解决(部分)此问题。不久,我在后台模式下启用了后台获取和远程通知(并在有效负载中添加了content_available : true
)。然后我可以处理didReceiveRemoteNotification:
中收到的数据但是现在还有一件事:当我的应用程序被杀死时如何使它工作?
编辑2:我找到了可能是这样的东西:that。修改远程通知的有效负载意味着在显示之前处理传入的通知。我会试试。
编辑3 :Firebase不支持在 EDIT 2 上找到解决方案所需的 mutable-content 键。关于这一点的讨论是here。所以...任何想法?
答案 0 :(得分:0)
我认为在iOS上使用NotificationBuilder以与在Android上相同的方式触发“股票”通知是不可能的。
唯一可用的选项是使用包含通知和数据有效负载的混合消息。
检查他们的doc以获取有关混合消息的更多信息。
答案 1 :(得分:0)
2014年2月16日,Firebase增加了对“可变内容”键的遵从性。所以这解决了我的问题,我认为,很多人的问题。
个人思考:
我认为这个功能迟到6个月真的太多了。我希望将来的版本能够与iOS(以及Android)版本保持同步。