Android 和 iOS gcm instanceID
Posted
技术标签:
【中文标题】Android 和 iOS gcm instanceID【英文标题】:Android and iOS gcm instanceID 【发布时间】:2015-10-23 17:07:51 【问题描述】:我们一直在尝试在 Android 和 iOS 上实现 GCM,但使用 instanceID 的行为存在差异。
在 Android 和 iOS 上,当我们每次注册应用程序时都请求实例 ID 时,我们会得到相同的令牌,如果我们不卸载并再次安装应用程序,这是真的,如果我们这样做,我们会有一个新的实例 ID在两者上,但旧的 android 令牌变为 NOT_REGISTER 并且 iOS 上的旧令牌仍在工作,让我们向同一 Android 设备发送 1 条消息(ok)和为同一 iOS 设备发送 2 条消息(not ok)
旧的 iOS instanceID 不应该是 NOT_REGISTER,就像它在 Android 上发生的那样吗?
【问题讨论】:
【参考方案1】:最终旧的实例 ID 也会失效。但是,如果您生成一个新的实例 ID,您应该用新的替换旧的并停止发送到旧的。此外,如果您发送给旧的,您应该在响应中获得一个规范的 id,指示要使用哪个令牌而不是您刚刚使用的旧令牌。
【讨论】:
这就是我们在 Android 上的行为,在 iOS 上我们无法获得规范的 id,而且 iOS 上的旧实例 id 失效的时间比 Android 上的要长以上是关于Android 和 iOS gcm instanceID的主要内容,如果未能解决你的问题,请参考以下文章
GCM:如何为 android 和 ios 应用程序使用相同的发件人 ID?
Android GCM InstanceId.getToken() -> java.io.IOException: TIMEOUT
AWS SNS Android GCM - InvalidPlatformToken