GCM 上 iOS 条通知的规范 ID

Canonical IDs for iOS notifications over GCM

我们有一个服务器可以向 iOS 和 Android 上的用户发送通知。 Android 工作正常。

问题是,当用户卸载并重新安装我们的应用程序时。然后,该应用程序使用其 APNS ID(仍然相同)从 GCM 请求一个新的推送 ID,并将新 ID 发送给我们。现在我们有 2 条记录可以发送通知。看起来 GCM 只是将其生成的 ID 映射到一个简单的 N:1 关系中的 APNS ID。

如果我们在 Android 中遇到相同的情况并且我们现在将通知发送到 GCM,它会在第一次响应中发送规范 ID,因此我们可以对此做出反应而不发送第二次通知。但是对于 iOS 它没有。响应看起来像是一个正常、完整、成功的请求。

我们是不是遗漏了什么或者 GCM 没有为 iOS 实现规范 ID?我找不到有关此问题的任何信息。

每个设备每个安装一个注册令牌。 每次您卸载并重新安装您的应用程序(iOS 或 android)时,GCM 都会给您一个新的注册令牌。

Canonical IDs是一个类似的概念。如果您获得了 Canonical ID,则需要用新返回的 Canonical ID 替换您服务器中的旧注册令牌,因为最终旧注册令牌将停止工作。

因此,如果您在卸载并重新安装 iOS 应用程序(或 Android 应用程序)时获得新的注册令牌,您只需将新返回的令牌与旧令牌进行比较即可。如果新token与旧token不一样,那么你可以在你的服务器中用新的token替换旧的token,这样你就不需要在你的服务器中维护2个token了。