GCM / APNS如何生成注册ID

时间:2012-07-16 12:56:56

标签: push-notification apple-push-notifications google-cloud-messaging

我目前正在实施基于php的推送通知服务器,可以管理多个应用程序。

如何生成GCM的 registration_id 。是按设备还是按安装生成注册ID。

示例:我有2个应用A和B。

当设备注册A和B时,安装是否具有相同的注册ID,或者每次安装是否生成一个id。

iOS的相同问题,每个安装或设备一个ID?

3 个答案:

答案 0 :(得分:6)

<强> APNS

  1. 如果我正确理解他们的文档,则deviceToken对于设备是唯一的。
  2. 当应用程序向APNS请求注册时,iOS(或Mac OSX&gt; 10.7)会请求它。
  3. deviceToken基本上是加密的deviceID,可能还有一些其他信息(不是特定于app)。
  4. 通过此,我们可以很容易地看到所有应用在设备上共享deviceToken,卸载后重新安装不应更改deviceToken。
  5. 您可以查看official APNS docs了解详情。

    <强> GCM

    1. 每个应用程序按设备生成。
    2. GCM可能会定期刷新注册ID。
    3. 卸载和重新安装几乎总是会提供不同的注册ID。
    4. 应用程序更新可能会导致发布新的注册ID。
    5. 如果有人认为这是不正确的,请告诉我。

答案 1 :(得分:4)

您是否在此查看了Google GCM体系结构概述:http://developer.android.com/guide/google/gcm/gcm.html

registration_id由Google GCM服务器生成并返回给您。这是每个应用程序的每个设备。因此,如果您管理2个应用程序,并且设备安装了这两个应用程序,则每个应用程序都将获得它自己的唯一registration_id。

Google GCM无法用于iOS,您需要通过Apple的推送通知服务器。我认为它们具有相同的架构,即每个设备每个应用程序有一个唯一的ID。

答案 2 :(得分:0)

对于IOS,每个应用程序的每个设备确实也有一个唯一的ID,此外,对于应用程序沙箱版本和生产版本,您将拥有不同的ID。 从第3方服务器到google / ios推送通知服务器的身份验证过程也存在很大差异。对于GCM,您只需要一个凭据用于所有应用程序,而对于IOS,每个应用程序和每个沙箱/生产版本需要不同的凭据。

有关IOS推送通知的更多信息,请访问:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/WhatAreRemoteNotif/WhatAreRemoteNotif.html#//apple_ref/doc/uid/TP40008194-CH102-SW1

相关问题