【问题标题】:Phonegap push notfication plugin - Token RefreshedPhonegap 推送通知插件 - 令牌刷新
【发布时间】:2016-05-10 16:04:49
【问题描述】:

我使用可以在这里找到的 phonegap 推送通知插件: https://github.com/phonegap/phonegap-plugin-push

通过这个插件,我使用 GCM API。

我的情况是: 我的应用程序中的任何用户都有一个令牌列表,指示他使用的电话:

PKID | userID | registerToken
  1  |    9   |  someToken1
  2  |    18  |  someToken2
  3  |    13  |  someToken3
  4  |    13  |  someToken4

用户可以有多个令牌,但令牌只能有 1 个用户。 显然,如果用户注销或更换手机等,我会以正确的逻辑维护此表......

问题出在 GCM 的 Token Refresh 系统上。 根据 GCM 文档,他们会定期刷新令牌。 在本机代码上,您可以使用名为“tokenRefreshed”的侦听器。

1) GCM 仍然刷新令牌,还是令牌现在是常量?

2) 我如何在这个插件中使用这个监听器?

3) 我怎样才能安全地知道我有手机的最后一个注册令牌 ID?

4) 即使我使用“tokenRefreshed”,我怎么知道它在我的桌子上替换了哪个令牌? (我需要知道之前的令牌)

【问题讨论】:

    标签: android cordova push-notification google-cloud-messaging phonegap-plugins


    【解决方案1】:

    根据我的经验,当您从设备上卸载应用程序时,GCM 令牌会过期。因此,对于每个安装存储,本地存储中的注册 ID 都会在您卸载应用程序时被擦除。

    接下来,检查您的本地存储中是否仍有注册 ID。如果没有,请进行推送注册,它会为您提供新的注册 ID。假设您已经知道用户登录时的用户 ID,您可以将旧的注册 ID 替换为新的。

    只要注册 ID 是新应用安装的最新版本,推送通知应该可以正常工作。

    从我使用 GCM 推送服务的经验中我只知道这么多。

    【讨论】:

    • GCM 令牌也会在您使用“注销”功能时过期。您建议将令牌保存在本地存储中,但对我来说感觉不那么安全并且承诺会给出正确的结果。但真正的问题是逻辑问题,我的用户可以从其他几个设备登录到应用程序。就像我在示例中发布的表格一样,用户不仅有 1 个设备,因此我真的不知道我需要更换哪个 tokenID。
    • 为此,我在数据库表中为设备 UUID 添加了一个新列。我没有匹配用户 ID,而是匹配设备 UUID 本身。对于注销的情况,很抱歉帮不了你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2014-08-06
    • 1970-01-01
    相关资源
    最近更新 更多