【发布时间】: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_KEY 是 FCM 的 服务器密钥 还是 发件人 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 模型来完成。
【问题讨论】:
-
我使用ampersandacademy.com/tutorials/ionic-framework-version-2/…从头开始为 Ionic Framework 2 推送通知开发了一个帖子
-
嘿@Richard 你解决了这个问题吗,我的应用程序出现了同样的错误。
标签: ionic-framework push-notification google-cloud-messaging ionic2 firebase-cloud-messaging