对于单个推送,iOS推送通知横幅显示两次

我注意到,发送推送通知会导致以下行为:

推横幅显示两次?

看看横幅是如何在短暂的延迟之后第二次显示?

起初,我认为我们的后台错误地发送了两个推送通知,一个接一个。

但是,这似乎是单个推送通知的默认iOS行为。 横幅显示,然后立即“显示”。 这导致在gif中显示的这个紧张的用户界面。 横幅似乎收到两次。

使用iOS 9.0.2进行testing。

我不记得看到从其他应用程序发送推送通知的这种行为。 我做错了会导致横幅显示两次?

雷达:

工程部门已经确定你的错误报告(23133694)是另一个问题(23130766)的副本,将被closures。

我遇到了同样的问题,但经过无数小时的debugging,我意识到我在didFinishLaunchingWithOptions:调用了两次registerUserNotificationSettings(settings) didFinishLaunchingWithOptions: 确认你没有这样做

你确定你正在做所有的设置吗?
如果你会提供更多的代码,将会更容易find错误。 这绝对不是一个iOS的错误。

当您遇到服务器通知问题时,请检查基本的东西:

1.检查您的供应configuration文件并清理所有未使用的证书。
2.确保你的服务器configuration没问题。 同样,更多细节需要完整的答案。

如果你正在脱机,那么通常你在代码中遗漏了一些东西,或者你的处理器被隐藏的post称为两次。

你使用数据库来存储设备ID?

如果是,那么可能是存储设备ID两次。如果可能干净分贝,并尝试再次发送

我认为在这里接受了错误的答案(如果这是关于从Parse迁移到OneSignal)。 因为OneSignal似乎没有任何适当的解决scheme。 我也正在寻找解决scheme,如果有任何人。 唯一的解决方法是,重新启动手机。

但它的奇怪。 我们不能要求所有用户重新启动他们的设备。

我们使用的版本是ios 9.3.3和ios 9.2的两个设备出现了这个问题。 但是,这个问题不是运行ios 8.2的设备,而是运行iOS 10的设备(在10.3testing)

每次全新安装时,在9.3.3和9.2的设备上发生问题。 但重新启动设备似乎解决了这个问题。 虽然这不是我们可以向客户提出的解决scheme。

在系统的控制台日志中,当发生这种情况时,我们得到了“SBBannerButtonViewController的不平衡调用开始/结束外观转换”消息。

这似乎是一些有9.x版本的设备的问题,应该适用于运行iOS 10.0及更高版本的设备。

我们在IOS 9.3.1上面临同样的问题

我们使用城市飞艇pipe理通知,这是我们的设置

 let config = UAConfig.default() UAirship.setLogging(false) UAirship.takeOff(config) UAirship.push().userPushNotificationsEnabled = true UAirship.push().notificationOptions = [.alert, .badge, .sound] UAirship.push().backgroundPushNotificationsEnabled = false UAirship.push().pushNotificationDelegate = self 

经过多次尝试,我们简单地删除了下面的行,它工作!

 UAirship.push().notificationOptions = [.alert, .badge, .sound] 

我希望这会帮助别人。

根据类似问题的回答,这个问题被报告为rdar:// 23569779,应该在iOS 9.3公开发行版中修复。

如果您在iOS 9.3+中重现此问题, 请留下评论

据说固定在:

iOS 9.2.1 beta(Build:13D11)