问题
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?
回答1:
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
回答2:
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
.
来源:https://stackoverflow.com/questions/35463794/using-gcm-on-both-android-and-ios-without-a-notification-payload