对于单个推送,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)