iOS Push Notification Banner shown twice for a single Push
Asked Answered
F

8

43

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

Push Banner is shown twice?

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.

Frida answered 9/10, 2015 at 22:15 Comment(7)
This is weird. You could try testing push notifications with a different backend (i.e. Parse), just to see if it results in the same behaviour. I tested push notifications few days ago, and I didn't encounter such glitches. Did you try testing on different devices?Placentation
Definetly not an issue with iOS, since other poeple would've reported it if it was. Either your server is sending it twice, or the event which triggers the server to send the notifications is being fired twiceInfringement
@Placentation In addition to our backend I've tested this using a single Push from the NWPusher tool, same issue.Frida
@HamzahMalik The method didReceiveRemoteNotification:fetchCompletionHandler: is called only once. Our iOS app also has no control over the display of that banner, so I don't think the app could be triggering it.Frida
I am also experiencing this. It's strange because if you look at the notification center, the notification is only listed once. This issue only affects the number of times the banner is shown. It also appears twice for me.Proselyte
@ilanbt did RukyO's answer below help, calling register... twice? It did not fix my problem (and I think you should be able to call it twice) but the answer has many upvotes from others it must have helped. If that didn't fix your issue, a comment there would be helpful.Frida
We had the same problem switching to OneSignal from Parse. Their implementation code is super simple, and we had to remove the [application registerForRemoteNotifications]; from our didRegisterUserNotificationSettings to stop the double notifications from showing up.Stefan
F
0

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)

Frida answered 7/4, 2016 at 21:7 Comment(2)
I am able to reproduce this bug on iOS 9.3.2 (13F51a). Effect is exactly the same.Binder
got the issue on iOS 9.3.3Eyra
O
33

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

Osteotomy answered 19/11, 2015 at 4:32 Comment(3)
Thanks for the answer, I will check this. This would seem to be a workaround for an iOS bug... there should be valid use cases for calling registerUserNotificationSettings: twice, such as requesting Badges as well as previously requested Alerts.Frida
We did the same mistake and unfortunately have submitted the app. What can we do now to fix this with a new version without having to ask users to un-install the app? We have tried calling unregisterForRemoteNotifications and then registerUserNotificationSettings but we are not seeing Notification Permissions Alert Dialog again.Cross
I'm chasing after this bug as well. The thing that I'm concerned about is that Apple suggest to register for remote notifications on every application launch since the token may change (read here: developer.apple.com/library/ios/documentation/…) Calling registerUserNotificationSettings only once goes against Apple's suggestion here.Decurrent
L
3

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.

Lewanna answered 19/10, 2015 at 22:31 Comment(4)
I'm fairly certain that my setup is correct. Only one Push is sent via the NWPusher tool, but two banners appear. A coworker confirmed the issue, as did someone in the comments of this question.Frida
@Frida it's also definitely not an iOS issue. Then if backend is ok just take a look at you push handling in your codeLewanna
Push handling in my code has little to do with this... a different app is open, and iOS shows the push notification banner on top of that app. Push handling in an app can not cause the banner to show twice...Frida
@BagratKirakosian, i have the same problem, what could be the problem with the provisioning profile? how do i fix it?Dorton
E
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.

Eyra answered 18/5, 2017 at 13:11 Comment(0)
L
2

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

Ling answered 20/11, 2015 at 7:5 Comment(0)
M
2

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.

Macey answered 13/7, 2016 at 7:6 Comment(0)
T
1

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.

Trident answered 18/7, 2017 at 8:26 Comment(0)
R
1

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!

Reprieve answered 21/12, 2017 at 4:33 Comment(0)
F
0

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)

Frida answered 7/4, 2016 at 21:7 Comment(2)
I am able to reproduce this bug on iOS 9.3.2 (13F51a). Effect is exactly the same.Binder
got the issue on iOS 9.3.3Eyra

© 2022 - 2024 — McMap. All rights reserved.