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 d
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.
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"}'
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.