我刚刚开始在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一致。当使用GCMFCM时,要使用的参数是不同的(请参阅链接)。

Android是否为通知定义了标准格式,或者您可以在Android中设置任何数据,并且客户端必须手动处理和显示这些通知?

这取决于您打算使用哪种类型的消息有效负载。 GCM / FCM有2 types of Messagesnotificationdata

notification 消息仅具有预定义的可用参数集,而 data 消息可用于具有自定义键值对。两者通常都由客户端处理,但是请注意AndroidiOS的行为因所使用的消息类型而异(请参阅链接)。

如何创建适用于两者的有效负载?

正如我在other post的评论部分中提到的:

您必须在自己的数据库/应用服务器中进行映射。是。我在这里想的是,每次在客户端应用程序端生成注册 token 时,您都将其沿着设备类型(即“Android”,“iOS”)发送到数据库/应用程序服务器。这样,当您发送消息时,首先必须检查设备的类型。我确实说过这需要更多的工作,但这是让您掌控一切的肯定方法。在AFAIK中,开发者有责任跟踪注册 token 和应与其关联的任何详细信息。

10-07 19:22