发布到主题时,Apple推送通知的Amazon SNS更新徽章计数器

ken*_*ken 7 boto amazon-web-services apple-push-notifications amazon-sns ios

我知道在发布到单个设备时可以设置徽章计数器,但是在发布到订阅某个主题ARN的所有设备时是否可以设置设备独立计数器?

目前的用例是,从服务器端的角度来看,可能有多达一百万用户订阅某个主题并且必须逐个向每个设备发布推送通知ARN(与主题ARN相对)似乎非常低效.

使用的框架

后端:使用BOTO AWS SDK和SQLAlchemy的Python Flask框架

前端:iOS

Wéd*_*uri 5

简短的回答

不,你不能.

Apple不允许您发送"+1"作为徽章编号,因此向订阅特定主题的所有用户发送相同的徽章编号不应该对您有所帮助.

答案很长

AWS SNS

AWS SNS允许您在同一主题上为每个平台制作自定义有效负载,因此它应该不是问题:

要向安装在多个平台(例如GCM和APNS)的设备上的应用程序发送消息,您必须首先将移动端点订阅到Amazon SNS中的主题,然后将消息发布到该主题.以下示例显示要发送到APNS,GCM和ADM上的订阅移动终端的消息

http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-custommessage.html#mobile-push-send-multiplatform

{ 
"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\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }",
"GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}",
"ADM": "{ \"data\": { \"message\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\" }}" 
}
Run Code Online (Sandbox Code Playgroud)

苹果

Apple不允许您增加徽章编号,因此我想向所有用户发送相同的徽章编号对您没有帮助.

关键:徽章

类型:数字

描述:要显示为应用程序图标徽章的数字.如果此属性不存在,则不会更改徽章.要删除徽章,请将此属性的值设置为0.

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

  • 似乎是对SNS平台的巨大限制.亚马逊已经存储了所有设备ARN,他们只需要为"当前徽章编号"添加额外的列,并允许我们手动设置.最终可能会切换到城市飞艇. (3认同)
  • 只想留下来自亚马逊的相同答案的链接,其中指出:"目前SNS没有此功能.您必须在服务器端跟踪徽章计数器并单独发布到每个端点,或跟踪徽章计数器在设备上." 取自https://forums.aws.amazon.com/thread.jspa?messageID=670000 (2认同)