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 通知并且不小心创建了两个跟踪相同记录类型的订阅!
我注意到发送推送通知会导致以下行为:
看看横幅是如何在短暂延迟后第二次显示的?
起初我以为我们的后端错误地发送了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 可能清理数据库并尝试再次发送它
根据
如果您在 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 通知并且不小心创建了两个跟踪相同记录类型的订阅!