问题
How to send silent push notification to iOS application over GCM?
Silent push is notification that will not appear in notification center, but awake application to do some action in background. Google introduce new features in new GCM with possibility to send push messages to Android, Chrome and iOS.
Any idea, how to do this?
回答1:
Use the content_available
(not content-available
) attribute like this:
curl -X POST --header "Content-Type:application/json" --header "Authorization:key=AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" "https://android.googleapis.com/gcm/send" --data-ascii '{"data":{"xxx":"yyy"},"content_available":true,"to":"XXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY-ZZZZZZZZZZZZZZZZZZZZ"}'
回答2:
From your server, you'll need to add the content-available
property with a value of 1 to your aps
dictionary.
You'll need to provide support for these silent notifications by adding remote-notification
to UIBackgroundModes
in your Info.plist file. More details here.
回答3:
I'm using the node-gcm npm library and the following payload works for me for iOS (for Android I'm sending a slightly different payload):
{ dryRun: false,
data:
{ customKey1: 'CustomValue1',
customKey2: 'CustomValue2',
content_available: '1',
priority: 'high' },
notification:
{ title: 'My Title',
icon: 'ic_launcher',
body: 'My Body',
sound: 'default',
badge: '2' } }
Of course you'll need to ensure that your app can handle the inbound notification.
来源:https://stackoverflow.com/questions/30616302/how-to-send-silent-push-to-ios-via-google-cloud-messaging