如何通过 Google 云消息传递静默推送到 iOS

How to send silent push to iOS via Google Cloud Messaging

如何通过 GCM 向 iOS 应用程序发送静默推送通知?

静默推送是通知不会出现在通知中心,而是唤醒应用程序在后台做一些动作。 Google 在新 GCM 中引入新功能,可以将推送消息发送到 Android、Chrome 和 iOS。

知道怎么做了吗?

从您的服务器,您需要将值为 1 的 content-available 属性 添加到您的 aps 字典中。

您需要通过在 Info.plist 文件中将 remote-notification 添加到 UIBackgroundModes 来为这些静默通知提供支持。更多详情 here.

像这样使用 content_available(不是 content-available)属性:

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

我正在使用 node-gcm npm 库,以下有效载荷适用于 iOS(对于 Android,我发送的有效载荷略有不同):

{ 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' } }

当然,您需要确保您的应用可以处理入站通知。