我正在使用AWS SNS向Apple设备推送通知。但是,我面临很多关于可以传递给SNS的消息长度的问题。例如。
如果我使用以下消息,则会传递:
{
"default":"This is the default message",
"APNS":"{
\"aps\":{
\"badge\":9,
\"alert\":\"The ninth season of supernatural, an American paranormal drama television series created by Eric Kripke, premiered on October 8, 2013, concluded on May 20, 2014, and contained 23 episodes. On February 14, 201\",
\"sound\":\"default\"
}
}"
}
with alert's value(which is the actual message) : 208 characters
Total characters : 319 characters
但是如果我在邮件中添加1个字符(警报值),它就无法正常工作。
同样,如果我使用以下json减少消息长度(25个字符)和aps
之外的1个额外参数,则工作长度如下:
{
"default":"This is the default message",
"APNS":"{
\"aps\":{
\"badge\":9,
\"alert\":\"The ninth season of supernatural, an American paranormal drama television series created by Eric Kripke, premiered on October 8, 2013, concluded on May 20, 2014, and contained 23 epis\",
\"sound\":\"default\"
},
\"sound\":\"newMessage.aif\"
}"
}
with alert's value(which is the actual message) : 183 characters
Total characters : 324 characters
但是,如果我在邮件中添加1个字符(警报的值),它就不起作用。
在发送消息之前,我似乎无法弄清楚我需要做的修剪量,这样它就不会失败。任何人都有任何想法吗?
答案 0 :(得分:1)
您的消息的有效负载是:
{
"aps":{
"badge":9,
"alert":"The ninth season of supernatural, an American paranormal drama television series created by Eric Kripke, premiered on October 8, 2013, concluded on May 20, 2014, and contained 23 epis",
"sound":"default"
},
"sound":"newMessage.aif"
}
您在上面看到的所有字符的总长度(包括引号和括号)应该是< = 256字节(不仅仅是alert
属性的内容)。您应该避免使用不属于警报消息的任何空格和换行符,因为这些空格和换行符也计入256字节限制。
请注意,您的第二个示例包含一个附加参数"sound":"newMessage.aif"
。这就是为什么你的警报剩余空间较少的原因。
顺便说一句,我不明白你为什么要两次发送sound
参数。这是一个错误吗?它应该只出现在aps
字典中。
APNS guide的相关引用:
每个推送通知都包含有效负载。有效负载包含 有关系统应如何提醒用户以及任何信息的信息 您提供的自定义数据。通知允许的最大大小 有效载荷为256字节; Apple推送通知服务拒绝任何 通知超出此限制。
示例的格式为空格和换行符 可读性。在实践中,省略空格和换行符以减少 有效载荷的大小,提高网络性能。