苹果推送通知可以发送更多的参数比警报和声音?

我有几个元数据,我需要与推送通知关联。

例如用户号,消息ID。

我可以发送比苹果支持更多的参数:

{aps = { alert = joetheman; sound = default; };} 

这可能吗?

是。 在“通知编程指南”部分的“通知负载”中指出

提供者可以在Apple保留的aps名称空间外指定自定义有效负载值。 自定义值必须使用JSON结构化和基本types:字典(对象),数组,string,数字和布尔值。 您不应该包含客户信息作为自定义有效载荷数据。 而是将其用于设置上下文(用于用户界面)或内部度量标准的目的。 例如,自定义有效负载值可能是即时消息客户端应用程序使用的对话标识符,也可能是标识提供程序何时发送通知的时间戳。 与警报消息相关的任何操作都不应具有破坏性,例如,删除设备上的数据。

所以你的负载可能看起来像

 { "aps": { "alert": "joetheman", "sound": "default" }, "message": "Some custom message for your app", "id": 1234 } 

更进一步,在同一页面上有很多例子说明了这一点。

当然。 您可以发送自定义参数作为有效载荷与苹果推送通知。 像凯文·巴拉德说,有效载荷将如上所示。 但是请记住,总是处理推送通知的一件事情,按照苹果约束推送通知,通知有效负载允许的最大大小为256字节; Apple推送通知服务拒绝任何超出此限制的通知。 因此,当您要将更多数据添加到通知时,请考虑这一点。

您不能将自定义标签放在aps标签中。 以下是文件所述的内容:

 Providers can specify custom payload values outside the Apple-reserved aps namespace. Custom values must use the JSON structured and primitive types: dictionary (object), array, string, number, and Boolean. 

所以在你的情况下,你应该做一些事情:

 { "aps": { "alert": "Hello Push", "sound": "default" }, "People": { "Address": "Your address here", "Name": "Your Name here", "Number": "XXXXXXXXXX" } } 

因此,您可以在主JSON中查找自定义有效内容,而不是在“aps”中: