Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android和iOS在数据消息方面的FCM差异_Android_Ios_Firebase_Push Notification_Firebase Cloud Messaging - Fatal编程技术网

Android和iOS在数据消息方面的FCM差异

Android和iOS在数据消息方面的FCM差异,android,ios,firebase,push-notification,firebase-cloud-messaging,Android,Ios,Firebase,Push Notification,Firebase Cloud Messaging,我正在使用Firebase云消息发送数据负载,并在我的Android和iOS应用程序中显示通知。我正在把它集成到我的iOS应用程序中,我正在面对一件奇怪的事情 短篇故事: 我的通知服务器只发送数据消息(我指的是包含“数据”字段且没有“通知”字段的JSON消息)。在我的Android应用程序中,这不是一个问题,因为即使我的应用程序在我的服务实现中处于后台,我也会收到消息,并且我会手动生成一个显示的通知。但在iOS的情况下,当我的应用程序在后台执行同样的操作时,我如何接收消息?我的意思是,如果我

我正在使用Firebase云消息发送数据负载,并在我的Android和iOS应用程序中显示通知。我正在把它集成到我的iOS应用程序中,我正在面对一件奇怪的事情

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

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

  • 重要精度:
显示的通知的内容应该构建在应用程序端,而不是服务器端,因为服务器没有足够的信息,这就是我无法在有效负载消息中发送“通知”字段的原因

谢谢

编辑:我使用解决(部分)此问题。很快,我在后台模式下启用了后台获取和远程通知(并在负载中添加了
content\u available:true
)。然后我可以处理在didReceiveMemotentification:中接收到的数据,但现在仍然有一件事:当我的应用程序被杀死时,如何使其工作

编辑2:我发现了一些可能的东西:。修改远程通知的有效负载意味着要在收到通知之前进行处理。我试试看


编辑3:Firebase不支持使在编辑2中找到的解决方案工作所需的可变内容密钥。关于这一点的讨论非常重要。所以有什么想法吗?

我认为不可能像在Android上使用NotificationBuilder那样,通过代码在iOS上触发“库存”通知

唯一可用的选项是将混合消息与通知和数据有效负载一起使用


查看其混合消息的更多信息。

2014年2月16日,Firebase增加了对“可变内容”键的遵从性。这就解决了我的问题,我想,也解决了很多人的问题

个人思考:


我认为这项功能晚了6个月实在太过分了。我希望未来的版本将与iOS(以及Android)版本同步。

实际上,混合消息的问题在于显示的通知是在服务器端构建的。我希望它是建立在客户端(应用程序)端…我编辑了我的文章。这仍然是一个不起作用的情况:当我的应用程序被终止(内存不足)时,Hi-FCM现在确实支持可变内容键。如果将FCM请求中的可变内容字段设置为true。在iOS 10+上向用户显示通知消息之前,您将能够拦截这些消息。感谢您的工作和提供的信息。但为什么这次发布花费了这么长时间(自从iOS10发布以来)?