Handling multiple notifications - iphone

I am using an app that issues many local notifications at a time. My issue is if there is more than one outstanding notification, clicking on a notification will cause the other(s) notification to be ignored. So is there any way to effectively track multiple notifications? Or even more specifically, find out which notifications were not received by the app delegate?

Related

Duplicate notifications with different sounds - push notification remote

I am trying to add the custom sound in the push notification. I have added the showNotification in the background handler on the client-side (flutter), but now when the application is in the background or terminated I receive duplicate notifications, one with default sound and the other with my custom sound. Can anyone tell me how to stop showing the default background notification?
You're getting the duplicate notification because
you're sending a notification message and it is automatically displayed by the FCM SDK and,
you're implementing a custom notification display yourself.
The solution is to send a data message instead of a notification message.
With FCM, you can send two types of messages to clients:
Notification messages, sometimes thought of as "display messages."
These are handled by the FCM SDK automatically.
Data messages, which
are handled by the client app.
Source

How to remove a specific push notification from notifications center Swift

my App is an app like Uber app, I sent a task to all my drivers this will be by a push notification.
But when a driver accepts the task first I need to remove the sent push notifications from all drivers devices so it won't be show in the notification center.
I search a lot about this issue, but no answers!
anyone try to delete a specific push notification from the notification center after sent it?
thanks.
You need to send a silent push-notification that triggers a local notification with a specific identifier.
This identifier should be send inside the silent push notification, that also should carry all information the driver should see in the local notification.
you need two types of push-notifications: show, hide.
got the point?

Handle APNS Remote Notifications while in Background

I have implemented all recommended methods in AppDelegate to get working Remote Notifications service.
I can accept them while running, while launching and while turned off.
But there is an issue, since I can't work with many received notifications while in background. I can work only with latest notification.
What is recommended manual to do that? How can I got all notifications received while in background? Is it only solvable via manual call to my service provider (sender of apns data)?
With all the projects I've worked on there hasn't been a way to locally store this information if the push notification is dismissed. In all those cases we used a small file on the server that the app would connect to and pull when it became active again. There was also some place in the app where the user could see all their notifications which, again, were stored on the server for quick retrieval.
With the way I understand push notifications to be setup, if the notification is dismissed the system discards it. It'll perform anything it's supposed to do (such as update the badge number and play the correct sound) but any additional information specific to that notification is lost.
Not sure if this helps, but if you just want to know how many notifications you have missed while you were in background. You can create a variable which contains notification number and store this in the app every time you handle notification. When you come out of background and receive a new notification you can subtract the new number with the stored number to find out the number of missed notifications. I don't think there is a way where iOS can give you complete data associated with all the notification device have received while the app was in background.
The best solution is to keep a list of sent notifications with all relevant data on your server, so the app can access that data when it launches. Sending multiple notifications with data that is not stored on the server can be risky, because the application only receives the notification when the user opens the app from that notification, so if they tap on one notification, the app will only every receive that one.
If you have them all in a list on your server, the app can simply go and pull that list down, and process it, making sure no data is lost.

How can I debug Apple push notifications not being received?

I'm using apn_on_rails to integrate Apple's Push Notifications with my service.
For a while, notifications seemed to be sent without issue. But now the notifications don't seem to be making it to people's iPhones/iPads.
According to our database, the notifications are being sent (apn_on_rails has a sent_at field that gets updated when the notification is sent). But no one (myself included) actually get the notifications.
Any ideas where to even start looking to debug this?
Notifications are not displayed if the app is running.
You can check the error response of the sending.

Push Notification Strategy for App using the Urban Airship service (iPhone)

I am building an app that uses the fine Urban Airship api to send the user push notifications.
The app keeps track of event dates that are added to the app by the user.
This means I have no server in place for dealing with push, the app itself simply
schedules a push notification with Urban AS when the user add the event date and time.
If the user decides to delete the event before it occurs I un-schedule it with Urban AS. All is good. I, however, would like to not send notifications to a user that has disabled notifications as these notifications are no free:)
I know the Push Notification API from Apple makes sure the user will not receive any notification if they turned them off in settings. They will simply ignore the scheduled notifications Urban AS sends, which is a waste of bandwidth and money.
How can I tell if the user has disabled the notification for my app?
Also, I see no other option than to test if the user has turned off notification and then tell Urban AS to cancel all notifications and if the user turns them back on, I will have to go through all events and re-scheduled them :/ each time the app runs.
Can anyone think of a way for me not to have to fill up my appDelegate with all kinds of conditional code for testing these scenarios? e.g. user has turned off push since last running the app, user has turned them on since last time. I am also concerned if the user will understand this behavior?
Guess I am just asking for a bit of best practice with this push / Urban Airship setup:)
Thanks.
As I see it, [[UIApplication sharedApplication] enabledRemoteNotificationTypes] will return the notification types the user has currently enabled for your app.
Otherwise, you are correct. You have to call this method on every app launch and, in the case that the user has reenabled notifications, reschedule all events that you had formerly deleted.
As to the question of filling up your app delegate with all kinds of conditionals, you might want to write a separate PushNotificationsController (not a UIViewController, just a NSObject subclass) that will handle all push-related stuff.