Amazon SNS 静默推送

Amazon SNS silent pushes

aws-sdk gem 和 Amazon 开发者文档中,我试图找到任何关于 SNS 静默推送的信息,但看起来很矛盾。 我很困惑,在 SNS 客户端中消息是必需的,但是否可以发送完全静默的 GCM 和 APNS 通知?

有人知道这方面的信息吗? 任何 advice/resource 将不胜感激。

看来你可以发送消息到 SNS using JSON format, so you should be able to set content-available and set the alert as you wish

对于 Android 我认为它会是相同的(但由于 Android 处理通知的方式不同,您应该能够处理任何负载并且不显示通知)

是的,关于静默推送通知的 Amazon AWS SNS 文档不是很有用,但它确实有效。 我通过 AWS SNS 服务通过 Lambda Node.js 通过 Apple APNS

向 iOS 设备发送静默推送通知

使用 Node.js

向 APNS 发送 AWS SNS 静默推送通知
var sns = new AWS.SNS();

var data = {myString:'silent push'}; // payload data object 
sns.publish({
    TargetArn: snsTopicArn,
    MessageStructure: 'json',
    Message: JSON.stringify({
        default: 'silent push!',
        APNS_SANDBOX: JSON.stringify({
            aps: {
                'alert': '',
                'content-available': 1
            },
            'data': JSON.stringify(data)
        })
    })
}, function(err, data) {
    if (err) {
        console.log(err.stack);
        return;
    }
});

对于 android,如果您不在 GCM 对象内发送 "message",它将是静默推送通知。这符合 GCM documentation

 GCM: {
      data: {
          // message: 'hello'
      }
  }