【问题标题】:Push Notifications in Ionic 2Ionic 2 中的推送通知
【发布时间】:2017-01-29 08:21:05
【问题描述】:

我正在 Ionic 2 中构建一个聊天应用程序,并且需要实现推送通知。

由于 Google 最近已将其 GCM 服务转移到使用 FCM,因此没有太多关于如何使用它实现 Ionic 应用程序的文档。我找到了following tutorial,它看起来完全符合我的需要。

本教程看起来不错,但是,我对一些问题感到困惑,不胜感激。

我正在 Windows 机器上开发,所以目前只是为 Android 构建。

问题 1

我对以下陈述感到困惑:

在真正的 android 和 iOS 设备上构建和运行以查看设备令牌 控制台。

当我运行ionic build android 时,它不会在控制台中生成设备令牌。你知道我怎样才能看到设备令牌是什么吗?

或者,它只是在运行时由data.registrationId 生成,然后传递给服务器?

        push.on('registration', (data) => {
            console.log("device token ->", data.registrationId);
            //TODO - send device token to server
        });

问题 2

在 Java 中,

static String API_KEY = "YOUR_GCM_API_KEY";
static String device_token = "YOUR_DEVICE_TOKEN";

对于static String API_KEY = "YOUR_GCM_API_KEY";YOUR_GCM_API_KEYFCM服务器密钥 还是 发件人 ID

当您执行此操作时,是否从 Ionic 应用程序收到了static String device_token = "YOUR_DEVICE_TOKEN";console.log("device token ->", data.registrationId);?即它是从客户端传递到服务器的吗?

问题 3

如果我们向单个设备发送单独的消息,例如对于聊天应用程序,我们如何区分设备?每条聊天消息都有一个 id,将其与一对唯一的用户(例如[userId1,userId2])相关联,但您的示例使用设备令牌,您如何为唯一的用户对发送它?

问题 4

我在浏览器运行时得到以下信息。

EXCEPTION: Error: Uncaught (in promise): TypeError: push.on is not a function

我可以忽略这个吗?我怀疑它只发生在浏览器中,当它在真实设备上运行时我不会收到此错误。

更新

似乎除了问题 3 之外的所有问题都已在下面得到解答。我猜它可以通过聊天特有的键上的某种 pub/sub 模型来完成。

【问题讨论】:

标签: ionic-framework push-notification google-cloud-messaging ionic2 firebase-cloud-messaging


【解决方案1】:

问题 1

这是从客户端传递到服务器的设计令牌:data.registrationId

问题 2

YOUR_GCM_API_KEY 是 FCM 生成的服务器密钥YOUR_DEVICE_TOKEN 是从客户端传递过来的:data.registrationId

问题 3

还不确定,正在进一步调查吗?

问题 4

这个错误可以忽略,它不会发生在设备上。

【讨论】:

    【解决方案2】:

    我以前没有尝试过 ionic,但我会继续尝试就您的问题提出我的想法,我认为其中一些至少会有所帮助:

    1. 很确定这只是意味着在实际设备上运行应用程序,而不是模拟器或浏览器。鉴于名称,我认为他们需要运行实际设备的原因可能是因为它可能是从设备本身检索到的 ID。

    2. 这是服务器密钥。 注意:您应该始终对服务器密钥和发件人 ID 保密。

    3. 对于 GCM/FCM,一个常用的东西是 registration_token,我认为在这种情况下,它是设备令牌的对应物。

    4. 不确定这个。我确实看到了这个similar post,尽管它仍然没有解决。看看社区,可能还有其他类似的帖子。

    【讨论】:

    • 谢谢 AL。我会保守我的钥匙的秘密。该屏幕打印来自上述教程。
    猜你喜欢
    • 2017-01-27
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    相关资源
    最近更新 更多