iOS 一次推送显示两次推送通知横幅

iOS Push Notification Banner shown twice for a single Push

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

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

起初我以为我们的后端错误地发送了2个推送通知,一个接一个。

但是,这似乎是单个推送通知的默认 iOS 行为。显示横幅,然后立即 "shown again"。这会导致 gif 中显示的抖动 UI。横幅似乎收到了两次。

使用 iOS 9.0.2.

测试

我不记得在其他向我发送推送通知的应用程序中看到过这种行为。我是不是做错了什么导致横幅显示两次?

雷达:

Engineering has determined that your bug report (23133694) is a duplicate of another issue (23130766) and will be closed.

您确定所有设置都正确吗?
如果您提供更多代码,将更容易找到错误。 绝对不是 iOS 错误。


当您遇到服务器通知问题时要检查的基本事项:

1。检查您的配置文件并清理所有未使用的证书。
2。确保您的服务器配置正确。同样,需要更多详细信息才能获得完整答案。

如果您是离线执行此操作,那么通常您在代码中遗漏了某些内容,或者您​​的隐蔽帖子处理程序被调用了两次。

我遇到了同样的问题,但经过无数小时的调试后,我意识到我在 didFinishLaunchingWithOptions: 中调用了两次 registerUserNotificationSettings(settings)。确认您没有做同样的事情

您是否使用数据库来存储设备 ID?

如果是,则可能存储设备 ID 2 times.if 可能清理数据库并尝试再次发送它

根据 在类似问题上的说法,此问题被报告为 rdar://23569779,应在 iOS 9.3 public 版本中修复。

如果您在 iOS 9.3+

中重现此问题,请发表评论

应该固定在:

iOS 9.2.1 测试版(内部版本:13D11)

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

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

我们在使用 ios 9.3.3 和 ios 9.2 版本的两台设备上遇到了这个问题。但是这个问题不是针对设备 运行 ios 8.2 和另一个 运行 对于 iOS 10(在 10.3 上测试)

每次全新安装 9.3.3 和 9.2 的设备上都会出现问题。但重启设备似乎可以解决问题。虽然这不是我们可以向客户提出的解决方案。

发生这种情况时,我们在系统的控制台日志中收到 'Unbalanced calls to begin/end appearance transitions for SBBannerButtonViewController' 消息。

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

我们在 IOS 9.3.1

上遇到了同样的问题

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

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]

我希望这会对某人有所帮助。

我知道这个答案是在最初 post 之后的几年,但如果这对任何人有帮助...

在我的例子中,我使用了 CloudKit 通知并且不小心创建了两个跟踪相同记录类型的订阅!