iOS Push Notification Banner shown twice for a sin

2019-01-16 16:00发布

问题:

I've noticed that sending a Push notification results in the following behavior:

See how the banner is shown a second time, after a short delay?

At first I thought that our backend was mistakenly sending 2 push notifications, one after the other.

However, this appears to be default iOS behavior for a single Push notification. The banner is shown, then immediately "shown again". This results in this jittery UI shown in the gif. The banner appears to be received twice.

Tested using iOS 9.0.2.

I do not recall seeing this behavior from other apps that send me Push Notifications. Am I doing something wrong that would cause the banner to show twice?

Radar:

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

回答1:

I was experiencing the same issue, but after countless hours trying to debug, I realized that I was calling registerUserNotificationSettings(settings) twice in didFinishLaunchingWithOptions:. Verify that you're not doing the same



回答2:

Are you sure you are doing all your setup right?
if you will provide more code it will be easier to find the bug. It's definitely not an iOS bug.


Basic things to check when you have trouble with server notifications:

1. Check your provisioning profile and clean up all unused certificates.
2. Be sure your server configuration is alright. Again, more details are needed for full answer.

If you are doing this offline then usually you missed something in your code or your handler for secluded posts is called two times.



回答3:

Got this issue for two devices we were using with versions ios 9.3.3 and ios 9.2. But this issue was not coming for a device running ios 8.2 and another running for iOS 10 (tested on 10.3)

Issue occurred on devices with 9.3.3 and 9.2 on every fresh install. But restarting the device seemed to fix the issue. Although that is NOT a solution we can propose to customers.

On the console logs for the system we got 'Unbalanced calls to begin/end appearance transitions for SBBannerButtonViewController' message when this occured.

This seems like an issue with some devices having 9.x versions and should be working fine for devices running iOS 10.0 and above.



回答4:

Are you using database to store device id?

If yes then may be store device id two times.if possible clean db and try to send it again



回答5:

I think the wrong answer is accepted here (If this is about migrating from Parse to OneSignal). Because for OneSignal there doesn't seem to by any proper solution for this. I am also looking for the solution if any one is having. The only workaround for this was, to restart the phone.

But its weird. We can't ask all the users to reboot their device.



回答6:

We were facing the same issue on IOS 9.3.1

We used urban airship for managing notifications and this was our setup

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

After many attempts we simply removed the following line and it worked!

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

I hope this will help someone.



回答7:

I know this answer is a couple years after the original post, but in case this helps anyone...

In my case, I was using CloudKit notifications and had accidentally created two subscriptions that tracked the same record type!



回答8:

According to this answer on a similar question, this issue was reported as rdar://23569779 and should be fixed in the iOS 9.3 public release.

Please leave a comment if you reproduce this issue in iOS 9.3+

Supposedly fixed in:

iOS 9.2.1 beta (Build: 13D11)