什么是推送通知警报文本的最大长度?什么是推送通知警报文本的最大长度?(What is the max

2019-05-12 20:09发布

什么是iOS的推送通知的警报文本的最大长度?

该文件指出,通知有效载荷必须下总共256个字节,但肯定必须有警报文本的特定字符的限制。

Answer 1:

对于警报文本实际限制为不记录任何地方。 的唯一文件说的是:

在IOS 8和以后,允许的有效载荷通知的最大尺寸是2千字节; 苹果推送通知服务拒绝任何超过这一限制的任何通知。 (现有到iOS 8和在OS X,最大有效载荷大小为256个字节)。

这是我能找到做一些实验。

  • 通知:在此之前到iOS 7警报显示限制为107个字符。 更大的消息被截断,你会得到一个“...”在显示邮件的末尾。 与iOS 7的限制似乎增加至235个字符。 如果你去了8行的消息也将被截断。
  • 横幅:横幅避开62个字符或2线截断。
  • 通知中心:在通知中心中的消息得到解决110个字符或4线截断。
  • 锁屏:同通知中心。

正如这里提醒是从官方文档一个很好的提示:

如果必要的话,iOS的截断你的信息,使其在每个通知传递的风格非常适合; 为了达到最佳效果,你应该不会截断你的消息。



Answer 2:

它应该是236个字节。 有在警报文本的大小没有限制,据我所知,但只有有效载荷总规模。 因此,考虑到如果有效载荷是最小的,仅包含警报信息,它应该是这样的:

{"aps":{"alert":""}}

这需要最多20个字符(20个字节),剩下236个字节放警报字符串内。 随着ASCII,这将是236个字符,可以用UTF8和UTF16较小。



Answer 3:

增强格式通知的极限记录在这里 。

它明确规定:

有效载荷不得超过256个字节,且不能是空值终止。

ascandroli权利要求以上 ,他们能够与1400个字符发送消息。 我自己用新的通知格式的测试表明,消息只是一个字节超过256字节限制被拒绝。 鉴于文档是在这一点上我认为它是安全使用256无论你可能能够实现实验,因为没有保证苹果不会在未来将其更改为256什么非常明确的

至于警报文本本身,如果你能在总共256个有效载荷大小适合它,然后它会被iOS的显示。 他们截断,显示了状态栏上的消息,但如果你打开通知中心,整个消息是存在的。 它甚至使得换行符\n



Answer 4:

编辑:

更新的答案最新信息

允许通知有效载荷的最大大小取决于您使用哪个提供商的API上。

当使用传统的二进制接口,最大有效载荷大小是2KB(2048个字节)。

当使用HTTP / 2提供者API,最大有效载荷大小是4KB(4096个字节)。 对于互联网语音协议(VoIP)的通知,最大尺寸为5KB(5120个字节)

OLD解答:根据苹果文档为iOS 8所述有效载荷为2千字节(2048个字节)和为iOS 7和前256个字节。 (删除的链接,因为它是一个古老的doc和现在不对头)

所以,如果你只是发送文本您有可用2028(的iOS 8+)或236(的iOS 7)字符。

通知有效载荷

每个远程通知包括有效载荷。 有效载荷包含有关系统应该如何提醒用户,以及您所提供的自定义数据信息。 在IOS 8和以后,允许的有效载荷通知的最大尺寸是2千字节; 苹果推送通知服务拒绝任何超过这一限制的任何通知。 (现有到iOS 8和在OS X,最大有效载荷大小为256个字节)。

但是我测试过,你可以发2千字节到iOS 7的设备也是如此,即使在生产配置



Answer 5:

我这里还有一些截图(横幅,警报和通知中心)



Answer 6:

对于常规远程通知,最大大小为4KB(4096个字节) https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html

### IOS的大小限制为256个字节,但由于引进的iOS 8已变更为2KB!

https://forums.aws.amazon.com/ann.jspa?annID=2626

与iOS 8,苹果推出新的功能,使一些富有新的使用案例移动推送通知 - 互动式推送通知,第三方小工具,和大(2 KB)的有效载荷。 今天,我们很高兴地宣布,与iOS 8.宣布了新的手机推送功能的支持我们发布新的iOS 8示例应用程序,演示了如何将这些新功能可以与SNS实现,还实施了更大的有效载荷2KB支持。



Answer 7:

按照WWDC 713_hd_whats_new_in_ios_notifications。 的256个字节用于推有效载荷之前的大小限制现已增加到2千字节为iOS 8。

来源: http://asciiwwdc.com/2014/sessions/713?q=notification#1414.0



Answer 8:

苹果推将拒绝各种原因的字符串。 我测试了多种用于推送的场景,这是我工作的修复(在python):

#  Apple rejects push payloads > 256 bytes (truncate msg to < 120 bytes to be safe)
if len(push_str) > 120:
    push_str = push_str[0:120-3] + '...'

# Apple push rejects all quotes, remove them
import re
push_str = re.sub("[\"']", '', push_str)

# Apple push needs to newlines escaped
import MySQLdb
push_str = MySQLdb.escape_string(push_str)

# send it
import APNSWrapper
wrapper = APNSWrapper.APNSNotificationWrapper(certificate=...)
message = APNSWrapper.APNSNotification()
message.token(...)
message.badge(1)
message.alert(push_str)
message.sound("default")
wrapper.append(message)
wrapper.notify()


Answer 9:

根据更新的苹果文档 (检查我的答案为准):

“......当使用HTTP / 2提供者API,最大有效载荷大小是4096个字节。使用传统的二进制接口,最大有效载荷大小是2048个字节。Apple推送通知服务(APN的)拒绝超过最大尺寸的任何通知。”



Answer 10:

苹果更新文件:

每个远程通知包括有效载荷。 有效载荷包含有关系统应该如何提醒用户,以及您所提供的自定义数据信息。 允许通知有效载荷的最大大小取决于您使用哪个提供商的API上。 当使用HTTP / 2提供者API,最大有效载荷大小是4096个字节 。 使用传统二进制接口,最大有效载荷大小是2048个字节。 苹果推送通知服务(的APN)拒绝超过最大尺寸的任何通知。



Answer 11:

看到我的测试在这里

我可以把多达33个字符,中国和13个字节的自定义值。



文章来源: What is the maximum length of a Push Notification alert text?