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

Posted

技术标签:

【中文标题】GCM - iOS 客户端控制推送通知?【英文标题】:GCM - iOS client side control over push notifications? 【发布时间】:2016-03-31 01:22:19 【问题描述】:

我目前正在使用 GCM 将通知推送到我的应用的 iosandroid 版本。

使用 Android,我可以处理从服务器客户端发送的任何消息,然后决定我想用它做什么。例如,我可以接收请求,检查客户端是否启用了推送通知,然后从客户端发送推送通知。

问题是:有没有类似于 Android 的 iOS 客户端发送推送通知的方法?

【问题讨论】:

【参考方案1】:

要接收消息,iOS 应用程序需要同时注册 Apple 推送通知服务 (APN) 和 GCM 连接服务器。当客户端应用向 GCM 注册时,它会收到一个注册令牌,然后它必须将其发送到应用服务器(APNs 设备令牌不会发送到服务器)。客户端应用程序必须存储一个布尔值,指示注册令牌是否已发送到服务器。

您可以关注documentation,了解如何在 IOS 上设置客户端应用程序。

基于这个SO question,实现APNs和GCM非常简单。您可以按照以下步骤操作

当 APN(iOS 设备)和 GCM(Android 设备)在 Apple 和 Google 服务器上注册推送通知时,它会为每台设备生成一个唯一令牌。

之后,您需要保存该设备令牌,以及您的设备 ID 或用户 ID(设备服务器上的唯一 ID)和设备的操作系统。

IOS 设备正在您的服务器(后端)上发送此信息,您可以使用此 JSON 格式-"token":"abcdedfgehik2bd3d3ff3sffssdff","os":"iOS","userid":34

这就是它的工作原理。

    您照常从 APN 请求设备令牌。 您需要使用提供的 API 将该令牌发送到 GCM 服务。 然后 GCM 发回另一个令牌。 然后将该令牌发送到应用服务器。 应用服务器可以使用该令牌发送通知。

也请尝试查看this 了解更多信息。

【讨论】:

以上是关于GCM - iOS 客户端控制推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

GCM iOS 没有收到推送通知

iOS 推送通知和 GCM

使用 GCM 在 IO 中实现推送通知

Phonegap 使用 GCM 向 ios 推送通知

Swift - GCM:不显示 iOS 远程推送通知

带有 GCM 的 iOS 推送通知