我刚刚开始在iOS上处理通知,似乎苹果已经为有效负载定义了一种接收通知的格式。
因此,当前,我正在使用此有效负载,并且一切都按预期工作。我正在获取标题,字幕,身体声音,图像。
{"aps" : {
"alert" : {
"title" : "Introduction To Notification",
"subtitle" : "Session 707",
"body" : "New Notification Look Amazing"
},
"sound" : "default",
"category" : "message",
"badge" : 1,
"mutable-content": 1
},
"attachment-url": "https://pusher.com/static_logos/320x320.png"
}
可以说,我想为Android和iOS提供一个有效负载。
Android是否为通知定义了标准格式,或者您可以在Android中设置任何数据,并且客户端必须手动处理和显示这些通知?
如何创建适用于两者的有效负载?
最佳答案
跨平台有效负载的更新:FCM最近添加了一项功能,该功能提供了为特定平台提供特定参数的选项,称为Platform Overrides。
您发布的样本有效负载似乎与official parameters for APNs一致。当使用GCM或FCM时,要使用的参数是不同的(请参阅链接)。
Android是否为通知定义了标准格式,或者您可以在Android中设置任何数据,并且客户端必须手动处理和显示这些通知?
这取决于您打算使用哪种类型的消息有效负载。 GCM / FCM有2 types of Messages,notification
和data
。
notification
消息仅具有预定义的可用参数集,而 data
消息可用于具有自定义键值对。两者通常都由客户端处理,但是请注意Android和iOS的行为因所使用的消息类型而异(请参阅链接)。
如何创建适用于两者的有效负载?
正如我在other post的评论部分中提到的:
您必须在自己的数据库/应用服务器中进行映射。是。我在这里想的是,每次在客户端应用程序端生成注册 token 时,您都将其沿着设备类型(即“Android”,“iOS”)发送到数据库/应用程序服务器。这样,当您发送消息时,首先必须检查设备的类型。我确实说过这需要更多的工作,但这是让您掌控一切的肯定方法。在AFAIK中,开发者有责任跟踪注册 token 和应与其关联的任何详细信息。