适用于 iOS 应用的 GCM(Google 云消息传递)

Posted

技术标签:

【中文标题】适用于 iOS 应用的 GCM(Google 云消息传递)【英文标题】:GCM (Google Cloud Messaging) for iOS apps 【发布时间】:2015-10-26 06:36:02 【问题描述】:

我正在开发一个 ios 应用程序,其中我的客户要求在 iOS 平台上实施 GCM(谷歌云消息传递)。我需要确定它是否可以在 iOS 上完成。当我们在 iOS 中使用 APNS 进行推送通知时。 谁能给我建议。

提前致谢。

【问题讨论】:

这可以通过阅读 Google Docs 中的 SDK 来完成。 【参考方案1】:

请查看此链接,它包含在 iOS 中集成 GCM 的所有步骤,并且要求您需要设置 CocoaPods 依赖项。

https://developers.google.com/cloud-messaging/ios/start

https://developers.google.com/cloud-messaging/ios/client

【讨论】:

还有什么不依赖 CocoaPoads 的吗?? 对于 GCM,它是必需的。你可以阅读谷歌文档developers.google.com/cloud-messaging/ios/client?ver=objc。您可以改用 Apple 的默认推送通知服务。【参考方案2】:

这是一个迟到的答案。但我刚开始在 iOS 上研究 GCM。所以我想回答这个问题,因为它可能会对某人有所帮助。 下面的流程图给出了关于 GCM 的简要思路。

GCM 可用于向单个注册 ID、组发送更新 注册ID,或者我们可以在GCM服务器中注册一个主题,我们 可以向订阅该特定设备的所有设备发送更新 主题。

只需按照步骤操作,您就会发现 GCM 集成很容易。

第 1 步: 请完整观看此视频:https://www.youtube.com/watch?v=gJatfdattno 这提供了 GCM 工作原理的基本概念。

第 2 步 转到此链接:https://developers.google.com/cloud-messaging/ios/client

这清楚地显示了您应该如何配置项目。主要和重要的部分是正确配置GCM config file

您只需上传apns certificate(开发人员和生产人员)并获取gcm config file 并将其添加到您的项目中(拖放到您的项目导航窗格中)。

您应该在didFinishLaunchingWithOptions 中调用的以下代码将自动从配置文件中获取_gcmSenderID

_gcmSenderID = [[[GGLContext sharedInstance] configuration] gcmSenderID];

另一个重要的部分是在didRegisterForRemoteNotificationsWithDeviceToken 中将kGGLInstanceIDAPNSServerTypeSandboxOption 正确设置为yesno,具体取决于您使用代码的环境(开发或生产)。即; kGGLInstanceIDAPNSServerTypeSandboxOption key 应该是 YES 如果你用它来测试。

这是一个 sample quick start project 供您开始使用。(swift 和objective-C)。这一切都很好地解释了示例应用程序。 如果您有任何疑问,请告诉我。

关于实际通信,只要应用程序在 iOS 设备的后台,GCM 使用 APNS 发送消息,应用程序的行为类似于使用 Apple 的通知系统。但是当应用程序处于活动状态时,GCM 会直接与应用程序通信 . 数据负载和通知负载都适用于 iOS 和 android。在 iOS 上,不同之处在于通知负载是通过 APNS 发送的,而数据负载是通过 GCM 自己的连接发送的,该连接仅在应用程序处于前台时才存在。

【讨论】:

以上是关于适用于 iOS 应用的 GCM(Google 云消息传递)的主要内容,如果未能解决你的问题,请参考以下文章

适用于 iOS 的 GCM 下游消息传递 JSON 格式

如何生成有效的 APNS 证书 (.p12) 以在 GCM for iOS 中使用?

创建 GCM 演示应用程序时出现 Javac 错误(Google App Engine Java/Windows 7)

从应用服务器接收 GCM 推送通知消息的步骤

IOS 没有收到 GCM 推送通知

GCM 推送通知仅适用于调试 apk