iOS推送通知不总是送达:取决于字符数+;wifi连接速度+;设备上的可用空间?

iOS推送通知不总是送达:取决于字符数+;wifi连接速度+;设备上的可用空间?,ios,swift,push-notification,apple-push-notifications,reliable-message-delivery,Ios,Swift,Push Notification,Apple Push Notifications,Reliable Message Delivery,我们在app Store上推出了一款基于Swift的应用程序,其中包括一个team messenger 我们遇到一些后台推送通知的可交付性问题 如果我们在iOS和Android设备上使用相同的帐户登录,所有推送通知都会显示在Android设备上,而只有部分推送通知会显示在iOS设备上 基于此,问题似乎与后端无关。通过Swift代码,一切似乎都很好——我们也收到了一些推送通知 设置: 我们直接从后端(node.js)通过APN将推送通知发送到 iOS设备。我们不在两者之间使用任何提供者(如Pus

我们在app Store上推出了一款基于Swift的应用程序,其中包括一个team messenger

我们遇到一些后台推送通知的可交付性问题

如果我们在iOS和Android设备上使用相同的帐户登录,所有推送通知都会显示在Android设备上,而只有部分推送通知会显示在iOS设备上

基于此,问题似乎与后端无关。通过Swift代码,一切似乎都很好——我们也收到了一些推送通知

设置:

  • 我们直接从后端(node.js)通过APN将推送通知发送到 iOS设备。我们不在两者之间使用任何提供者(如Pusher)
问题描述:

  • 在3台设备上测试(电池充满电、蓝牙已关闭、请勿打扰已禁用、未安装可阻止推送通知的应用程序等)。
    • 设备A:iOS 10.3.3-7GB可用空间上的iPhone5
    • 设备B:iOS 10.3.3-9GB可用空间上的iPhone5
    • 设备C:iOS11上的iPhone 5s
在慢速wifi连接上进行测试(即使速度测试显示下载速度为22Mbps):

  • 所有10个字符的推送通知都在所有3台设备上通过
  • 带有+20个字符的推送通知仅显示在设备B+C上
  • 超过+30个字符时,设备B+C上未收到推送通知
在更快的wifi连接上测试:

  • 使用相同的设备A和B。不包括设备C
  • 在设备A+B上接收并显示最多497个字符的推送通知
  • 两台设备中的任何一台都不会收到超过509个字符的推送通知
  • 未收到“509字符消息”后立即发送的短消息(少于10个字符)-->通知似乎被暂时阻止。大约一分钟后,会收到并再次显示短推送通知(例如10个字符)。所有较短的消息都会被接收和显示,直到我们再次发送长消息,从而阻止推送通知的传递
再次测试较慢的wifi连接 -现在体验与快速连接上相同的行为。最多显示约500个字符的推送通知,而更多字符的推送通知无法通过,并且似乎会阻止随后发送的较小推送通知的传递

负载大小不应成为问题:因为我们在设备A上最初没有在慢速wifi连接上接收到超过+20个字符的推送通知,但能够在同一设备上以更快的wifi连接接收497个字符的推送通知,我认为我们应该能够排除这个问题与有效载荷的大小有关。你同意吗

这三个参数的组合是否会影响推送通知的发送?

  • 信息长度+wifi连接速度+可用空间
关于如何解决这一问题以确保所有推送通知都已交付,并避免我们遇到的临时阻塞/未交付,有何建议

提前感谢,


Andreas

您是否检查收到的状态码以响应您的APNs请求?也许这会澄清这种行为的原因。无论如何,除了VoIP推送通知,苹果不保证推送通知的交付。因此,如果您需要这些聊天通知,可能VoIP推送通知就是您要寻找的。感谢您提出的查看VoIP推送通知的建议,Anton。我们现在使用的是标准推送通知,但我会马上研究VoIP。使用VoIP推送通知比使用常规推送通知有缺点/缺点吗?嗯,据我所知,并非所有应用程序都允许使用此类通知。可能你必须解释为什么你需要这种类型的通知。但似乎在应用程序中进行聊天就足以使用VoIP推送。至少你可以在iOS 8或更高版本上使用它们。查看此文档,苹果不保证推送通知交付。但是,如果您希望接收所有通知,您可以遵循以下步骤。