我需要在我的应用程序中获取徽章计数。我正在使用Amazon SNS服务。这是我的代码
AWS.config.update({
accessKeyId: 'XXXXXXX',
secretAccessKey: 'XXXXXXX'
})
AWS.config.update({ region: 'XXXXXXX' })
const sns = new AWS.SNS()
const params = {
PlatformApplicationArn: 'XXXXXXX',
Token: deviceToken
}
sns.createPlatformEndpoint(params, (err, EndPointResult) => {
const client_arn = EndPointResult["EndpointArn"];
sns.publish({
TargetArn: client_arn,
Message: message,
Subject: title,
// badge: 1
}, (err, data) => {
})
})
我需要知道在哪里可以添加badge
选项吗?
谢谢!
答案 0 :(得分:2)
我们可以将json
消息发送到AWS SNS,以将推送通知发送到应用程序端点。这样我们就可以发送平台(APNS,FCM等)的特定字段和自定义内容。
用于APNS的示例json消息是
{
"aps": {
"alert": {
"body": "The text of the alert message"
},
"badge": 1,
"sound": "default"
}
}
这是发送请求的方式,
var sns = new AWS.SNS();
var payload = {
default: 'This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for
one of the notification platforms.',
APNS: {
aps: {
alert: 'The text of the alert message',
badge: 1,
sound: 'default'
}
}
};
// stringify inner json object
payload.APNS = JSON.stringify(payload.APNS);
// then stringify the entire message payload
payload = JSON.stringify(payload);
sns.publish({
Message: payload, // This is Required
MessageStructure: 'json',
TargetArn: {{TargetArn}} // This Required
}, function(err, data) {
if (err) {
console.log(err.stack);
return;
}
});
});
如果您需要支持多个平台,则根据AWS文档,
要将消息发送到安装在多个平台(例如FCM和APNS)的设备上的应用程序,您必须首先将移动终端节点订阅Amazon SNS中的主题,然后将消息发布到 topic 。
可以在APNS Payload Key Reference中找到特定于APNS的有效负载密钥。
AWS SNS文档可在Send Custom, Platform-Specific Payloads to Mobile Devices
中找到