Push Notification isn't delivered - ios

my app uses Push Notification between clients as it uses a chat service [Note: i'm using PFPush from Parse.com]. When i'm sending a push that has it's Data property set to a value, the push is received when the app is in the foreground but not when it's in the background. i'm not sure if the app is receiving it but not displaying a notification alert or not. However, sending a push without setting a data it's working fine. I read that setting a data will overwrite the message property. so how could i fix that as the data property is something crucial in the delivery process as it holds data of the chat text and i cannot omit it? should i be sending two notifications? one to alert second for data? Thank you!

Oh your welcome. That is all i know let me search if i find any other solution. It should be one that you see a lot of apps that do this.

Try sending them both.i guess you should fix it in Notification settings.

Related

Modify Notification data before displaying to user in iOS

I have an app in which I am using an FCM notification when there is an event from server.
I want to get the notification data and update the message from one of the parameter from Notification Payload when app is in background, foreground or killed.
I have tried to use Silent Push Notification with Content Available but when my app is killed, then I am unable to receive callback in my App delegate.
I have tried lots of links from StackOverflow but could not get the perfect suggestion.
If you find duplicate, then please provide me the link but solution with different iOS (12,13,14,15) versions.
My problem is just like this Stack Link
It sounds like what you want is a Notification Service Extension. This is a separate binary (packaged with your app) that can run when a notification is received. Your extension can intercept the push-notification payload, and modify it, so that other things can be displayed.
https://developer.apple.com/documentation/usernotifications/unnotificationserviceextension
This is also really good, too.
https://www.raywenderlich.com/8277640-push-notifications-tutorial-for-ios-rich-push-notifications

iOS Push notification using Firebase

I am working in a project where I need to show notifications fired by Firebase. Everything works fine with the send and receive flow. But I need to customise the notification before showing it, i.e., when the app is in background. Because the message I receive from our server it's already Base64 encoded. And therefore the notification displays a long string that my petrify the users.
Is there any delegate or something which I can use to modify the received data before presenting it when the app is in background?
Currently there is no way in iOS to do that. Please refer to this answer for more details How to change how a remote notification is presented before presentation?
You can use these following in your project to handle any data.
Works only for iOS 10.2 or greater
UNNotificationServiceExtension
UNNotificationContentExtension
Go through this link - https://medium.com/#prianka.kariat/ios-10-notifications-with-attachments-and-much-more-169a7405ddaf
As i have limited time please let me know if you need more explanation on this.
Debugging is also a tricky part in this First you go through this then try to debug by GO to DEBUG -> Attach to process by pid and paste your extension name you added.

Control which iOS notifications to display

We have iOS push notifications configured and running. However, we would like the user to select which categories are interesting to receive and which are not important and would like to omit receiving those notifications.
Is there any way to do this through Apple push notification itself rather than through the server sending the notifications? (We can change the sent JSON). Can the iPhone send which categories it would like to receive and which are not needed by registering them to Apple? Other choice, can we interrupt the push notification before being shown and decide whether it should be shown or not through a delegate? So far, I can't find an available method to do either.
Any help is appreciated
The short answer is not from the client side. If you want a solution that works 100% of the time you will need to do something on a server which only sends the types of push notifications the user subscribes to.
If your App is in background there is no concept of "categories" of PUSH notifications and you have no control over if they show up in the notification center.
You can examine inbound push when the App is in the foreground and decide on the basis of some meta data to display or not, but that is not a 100% solution.

Retrieve old push notification from parse

first of all pls sorry for my question, it may appear silly, but i'm in a very early stage of IOS and parse programming.
I manage to create my app in order to receive remote push notification from parse.
I would like to save in one array all push notifications sent from parse to the app.
If i well understood, i can achieve it only if the user tap on the notification, in that way user tap on iphone , "wake" it and so i can execute the code to save the push notification.
But in case user do not tap on it, the data is lost. Same if the push notification has an expiry time, and in that timeframe i have no internet connection.
Is there a way to retrieve, from app, all the sent notifications for the app ? like i was querying any table in dashboard/data browser ?
Many thanks in advance for your help
If my request is not clear, pls tell me
B. regards
Fabrizio
You can create a new Class on your Parse Database and when you create and send you push object, you also save it in background in the new table.
So, when you need to retrieve any push notification atributes you should have them all stored in your database.

How can I handle unread push notifications in iOS?

I have a iOS 5.1 application that registers to the APNS service to receive notifications. The register is successful and I receive the notifications correctly. The problem comes when I try to handle the notifications.
Once the application is running, the method didReceiveRemoteNotification in the AppDelegate is called correctly and so the notification is handled as intended. This, however, only happens when the application is running on the foreground.
However, when the application is running on the background or is simply stopped, that method is not called. I've read that you should add some lines to the method didFinishLaunchingWithOptions method to obtain the notification from the userInfo dictionary, and handle it. This works just fine, but ONLY when the application is opened by clicking on the notification at the Notification Center. This means that if you open the application by clicking on its badge, or simply by changing context if you were running it on the background, the app never realises that a notification came in. Additionally, if more than one notification was received, we can only handle one of them at once by clicking on the Notification Center, which is a pain :-)
Is there any way to read the pending notifications in the Notification Center? I know there is a way to flush them using the method cancelAllLocalNotifications but I haven't found a way to just read them. And I really need to handle all of them. I thought of implementing a communication protocol with the third-party notification server to retrieve the information again when the application comes to the foreground, but since the information is already in the operating system I would find it strange if it's impossible to access it somehow.
So, does anybody know a way to do it? Thanks in advance.
When a push notification arrives and the user clicks 'cancel', your app has no way to read that push notification again. You have to implement a separate functionality (most probably on server-side) to fetch a list of notifications sent to this device.
For example, if a chat functionality is provided in your app and you send chat messages via push notifications then you should also keep chat messages on the server. If a user clicks 'Cancel' on any push notification then that chat message will not be displayed on the iOS device. In that case when a app comes in foreground later, you make a call to the server and fetch all the past chat messages (sent via push notification).
Ok, So a possible solution would be to have another database table with the messages in with a 'read' flag and a messageID field? Which by default the read flag is NO, then when the app successfully reads this and displays, it updates the flag to YES?
And with only 256 bytes to play with, what sort of ID field length would be necessary?
Edit,
Executed this plan and its working successfully.

Resources