我是 IOS 推送通知的新手。我一直在阅读有关它们的信息,但似乎无法在任何地方找到此信息。我读到推送通知的大小限制是 256 字节。此大小限制是否包括必须发送的设备令牌以及有关通知的其他开销信息等内容。如果是这样,我的内容可用的实际大小是多少。
他们使用什么格式来解释我发送的文本?转换 1 个字符 = 1 个字节还是更多。我真的想知道我可以在推送通知中发送多少个字符。
感谢您在了解推送通知有效负载的限制方面提供的任何帮助。
每个推送通知都带有一个有效负载。有效载荷 指定如何提醒用户有待处理的数据 下载到客户端应用程序。允许的最大尺寸 通知有效负载为256字节;苹果推送通知服务 拒绝任何超出此限制的通知。
对于每个通知,提供者必须组成一个 JSON 字典对象 严格遵守 RFC 4627。该字典必须包含 另一个由键 aps 标识的字典。 aps词典 包含一个或多个指定以下操作的属性:
- 向用户显示的警报消息
- 用于在应用程序图标上标记的数字
- 播放声音
所以,回答你的问题,
此大小限制是否包括具有设备令牌之类的内容 要发送的信息以及有关通知的其他开销信息。
是的,此大小限制包括设备令牌和其他开销信息。
转换 1 个字符 = 1 个字节还是更多。
如果您在通知中仅使用拉丁字母,则确实如此。
以上内容都相当不清楚,因为“包含”可能意味着“它已经包含”或“你必须包含它”。需要明确的是,设备 ID 是“元数据”,不是有效负载的一部分,并且不会超出您的 256 个字符预算。不过,另一个 APS 开销(标准有效负载字典)是。
来源:上述文档加实验验证。
我在生产环境的APNS测试中,最多可以发送33个汉字和2个13字节的自定义属性。
{
"aps": {
"alert": "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三",
"badge": 12,
}
"t": 123,
"v": "1234567890"
}
如果保存为文件,上述有效负载长度为 158 字节,不包括空格字符。 每个汉字被算作3个字节(我通过删除所有汉字来查看大小变化来确认这一点)。
正如官方文档提到的,256字节的限制不包括设备令牌,但我相信APNS还有其他字符被计算在内,例如“声音”和“内容可用”,即使你没有明确使用。
因此请注意不要“太长”,尤其是在使用自定义负载时。 请注意,APNS 开发环境不限制有效负载长度。您在使用开发环境时测试通过,但在产品中可能会失败。不要认为这是确定的。
对于像我这样最近在 2023 年遇到这个问题的人来说,关于 生成远程通知 的 Apple 文档说:
基本的远程通知有效负载包括 Apple 定义的按键和 他们的自定义值。您还可以添加特定的自定义键和值 到您的通知。 Apple 推送通知服务 (APN) 拒绝 通知 如果其有效负载的总大小超过以下值 限制:
对于互联网协议语音 (VoIP) 通知,最大 有效负载大小为 5 KB(5120 字节)。
对于所有其他远程通知,最大负载大小为 4 KB (4096 字节).