Home » Android » Using GCM on both Android and iOS without a notification payload

Using GCM on both Android and iOS without a notification payload

Posted by: admin May 14, 2020 Leave a comment


I want to implement push notifications on both Android and iOS with Google Cloud Messaging.

I don’t want to use the notification key in my payload because the Android behavior is not ideal. On Android, I would prefer my receiver to always get triggered with the data payload, and I can construct the Notification myself using NotificationCompat. If you use the notification payload on Android, you have no control over the notification style, for example.

However, if I only send a data payload, I think my iOS app will not receive the push if it is backgrounded – killed, never launched since device restart, etc. I think there’s that content_available flag for GCM which may trigger the push anyway?

Am I, on iOS, able to duplicate the Android behavior of always having my in-app code execute upon notification? I’d be fine constructing my own iOS notification based on the GCM data payload, and perhaps using something like a UILocalNotification, but from what I’m reading, iOS is requiring the notification payload to exist to make sure the push is always received by the user.

Can I get this kind of control on iOS?

How to&Answers:

You have to disable the content_available flag to false, so that it works on Ios as expected and provide full control on android,

Source:- I have worked on Push Notification on both android and IOS recently


From my research, it seems that you can’t avoid using the notification payload. However, you can get rid of the default Android behavior of auto-creating a notification, if, instead of creating a MyGcmListenerService that extends GcmListenerService, you create your own GcmListenerService and extend plain old Service.