使用 GCM 在 iOS 和 Android 之间进行对话

Posted

技术标签:

【中文标题】使用 GCM 在 iOS 和 Android 之间进行对话【英文标题】:use GCM to talk between iOS and Android 【发布时间】:2015-06-26 21:51:00 【问题描述】:

所以我在一个使用 GCM 开发跨平台应用程序的团队中。 androidios 团队都有自己的 GCM Sender ID 和 Server API Key。 每个平台都可以注册并获得一个代币。 每个平台都可以成功使用 GCM 与匹配的硬件对话:iOS -> iOS 和 Android -> Android...

问题是我们不能跨平台 iOS -> Android,反之亦然!?!?我得到一个“MismatchSenderId”...

我错过了什么? 我尝试使用 Android Sender ID 在 iOS 上注册,但我无法注册...

所以我不知道如何使用 GCM 从 iOS -> Android 进行对话?

有什么帮助吗??

【问题讨论】:

【参考方案1】:

根据定义在 GCM 中的 SenderID (here):

配置 API 项目时创建的唯一数值 (在 Google Developers Console 中以“项目编号”的形式给出)。这 发件人 ID 在注册过程中用于识别应用程序 允许向客户端应用发送消息的服务器。

您可以在开发者控制台左上角的选项列表(API & Auth 等)旁边找到它

由于此 SenderID 与项目的 API 密钥不匹配,因此引发此错误。这意味着您可能正在使用来自另一个项目的 API 密钥并使用另一个项目编号 (SenderID)。请检查您是否在正确的位置使用了正确的值。

关于为跨平台通信实现 GCM 相当简单,因为它现在可以通过 API 提供给 iOS。如果这不适合您,也可以使用第三方库来帮助解决。

有用的资源: GCM iOS implementationCordova Plugin 用于推送通知

【讨论】:

以上是关于使用 GCM 在 iOS 和 Android 之间进行对话的主要内容,如果未能解决你的问题,请参考以下文章

GCM:如何为 android 和 ios 应用程序使用相同的发件人 ID?

Android- Open Fire、云连接服务器和 GCM 之间的区别

GCM - iOS 客户端控制推送通知?

Android 下的 Websockets 与 GCM:电池使用情况?

亚马逊、解析、pushwoosh 和 Android 的默认 GCM 推送通知之间的区别?

Android GCM InstanceId.getToken() -> java.io.IOException: TIMEOUT