iPhone推送通知字符限制

时间:2012-02-07 19:29:25

标签: ios push-notification

我是IOS推送通知的新手。我一直在阅读它们,似乎无法在任何地方找到这些信息。我已经读过推送通知的大小限制是256字节。此大小限制是否包括诸如必须发送的设备令牌和有关通知的其他开销信息之类的内容。如果是这样的话,我的内容可用的实际大小是多少。

他们使用什么格式来解释我发送的文字?转换1个字符是1个字节还是更多。我真的想知道推送通知中可以发送多少个字符。

感谢您帮助理解推送通知有效负载的限制。

3 个答案:

答案 0 :(得分:49)

  

每个推送通知都带有一个有效载荷。有效载荷   指定如何提醒用户等待的数据   下载到客户端应用程序。允许的最大大小   通知有效载荷为256字节; Apple推送通知服务   拒绝任何超出此限制的通知。

     

对于每个通知,提供者必须编写JSON字典对象   严格遵守RFC 4627.此字典必须包含   由关键的aps识别的另一个字典。 aps字典   包含一个或多个指定以下操作的属性:

     
      
  • 要向用户显示的提醒消息
  •   
  • 使用
  • 标记应用程序图标的编号   
  • 播放声音
  •   

- Local and Push Notifications Programming Guide

所以,回答你的问题,

  

此大小限制是否包含诸如设备令牌之类的内容   发送以及有关通知的其他开销信息。

是的,此大小限制包括设备令牌和其他开销信息。

  

转换1个字符是1个字节还是更多。

如果您在通知中仅使用拉丁字母,则情况属实。

答案 1 :(得分:5)

以上都是相当不清楚的,因为'include'可能意味着“它已经被包含”或“你必须包含它”。要非常清楚,设备ID是“元数据”,不是有效载荷的一部分,并且不会超出256个字符的预算。然而,另一个APS开销(标准有效载荷字典)是。

资料来源:上述文件和实验验证。

答案 2 :(得分:3)

在生产环境中的APNS测试中,最多可以成功发送33个中文字符和2个13字节的自定义属性。

{

    "aps": {
        "alert": "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三",
        "badge": 12,
    }
    "t": 123,
    "v": "1234567890"
}

如果保存为文件,则上述有效负载长度为158个字节,不包括空格字符。 每个中文字符被计为3个字节(我确认通过删除所有字符来查看大小更改)。

正如官方文档所述,256字节限制不包括设备令牌,但我相信APNS还有其他字符,例如' sound'和'内容可用'即使你没有明确使用。

因此,请注意不要太长',尤其是在使用自定义有效负载时。 请注意,APNS开发环境不限制有效负载长度。您的测试在使用开发环境时通过,但可能在产品中失败。不要把它当作一定的。