多个设备令牌目标指向 AWS SNS 中的单个 Android 设备

Posted

技术标签:

【中文标题】多个设备令牌目标指向 AWS SNS 中的单个 Android 设备【英文标题】:Multiple device token targets to a single Android device in AWS SNS 【发布时间】:2016-08-18 09:31:15 【问题描述】:

我在 AWS SNS GCM 中遇到问题,以下是场景:

当应用程序安装在移动设备中并在启动应用程序后向 GCM 注册并接收令牌并发送到服务器 现在卸载应用程序并再次安装,它从 GCM 接收到新令牌,并发送回服务器 现在,当服务器在旧令牌和新令牌上发送通知时,移动设备会收到两个通知

这意味着之前的令牌仍然适用于该手机。

此问题仅发生在 android 中,而不发生在 ios

应该如何停止?任何解决方案

谢谢

【问题讨论】:

欢迎来到 Stack Overflow!能否在您努力解决问题的同时,在内容中提供更好的标题和更详细的信息? 【参考方案1】:

gcm.register("project number"); 创建新令牌

gcn.unregister(); 注销之前的令牌;

以上代码已弃用,请使用

InstanceID.deleteToken() or InstanceID.deleteInstanceID().

【讨论】:

什么时候执行?因为我正在删除应用程序,之后我的本地存储就被清除了 每当您获得该特定用户的新令牌时,您必须从后端注销该令牌 我正在使用 AWS SNS,而 sencha 应用程序具有 AWS cordova 插件,该插件已在 GCM 中注册,并在收到令牌后将其发送到我的后端服务器进行存储 您的应用中有登录功能吗? 是的,应用中有登录功能【参考方案2】:

通常需要将token写入

(Android) 个人资料 (iOS) 钥匙串

当您启动应用程序时,您需要检查令牌。如果已经有可用的令牌(但在您的数据库中没有任何内容 [例如 localStorage、sqlLight]),您需要取消注册令牌。

【讨论】:

以上是关于多个设备令牌目标指向 AWS SNS 中的单个 Android 设备的主要内容,如果未能解决你的问题,请参考以下文章

aws boto sns - 通过设备令牌获取 endpoint_arn

推送通知的 Amazon SNS android 设备令牌限制

我是不是需要针对不同设备操作系统的多个 AWS SNS 平台应用程序?

设置 AWS SNS 以向 iOS 设备发送推送通知

AWS EventBridge 单个事件中的多个目标

AWS SNS 推送通知请求返回“DeviceTokenNotForTopic”