这个问题可能与Duplicate Apple APNS push notifications?相同,但由于那个问题没有得到答案,而且我有更多的信息,我会再试一次。
重现问题的步骤:
以下是按照这些步骤操作的视频,其中清楚地显示了问题:
我们就像Remy Gale在上面的链接问题中所做的一样,确保我们的通知以正确的方式发送,每次通知只发送一次。我们还用sandbox-apns和production-apns对它进行了测试,两者的行为完全相同。
如果app-badge设置为0,问题就会消失,从而会从通知中心删除所有通知。手动删除通知无济于事。
UIApplication *app = [UIApplication sharedApplication];
app.applicationIconBadgeNumber = 0;
但这不是解决方案。
如果所有通知都包含唯一文本,则不会出现此问题。向警报文本添加GUID将使问题消失。将它作为自定义属性或本地化参数添加到apns-payload中将无济于事,因此这也不是解决方案。
这可能很少发生在带有实时应用程序的生产环境中,但它可能会发生,当它发生时,它对用户来说真的很烦人!
有谁知道为什么会这样?有没有人有可行的解决方案?
答案 0 :(得分:7)
这封适用于Gmail的Google Group版本来自已经研究过该错误的用户提供的条目,其中包含可能的解决方法。根据该条目,该错误在iOS 5中不存在,但在iOS 6中引入。
解决方法只是在标题上附加一个随机数Zero-width non-joiner,以确保唯一性。
答案 1 :(得分:0)
这可能是服务器在向APN发送推送通知时选择的时间戳的问题。只选择最新的时间戳。