如何通过 GCM 向 iOS 设备发送推送通知?

Posted

技术标签:

【中文标题】如何通过 GCM 向 iOS 设备发送推送通知?【英文标题】:How to send push notification via GCM to iOS device? 【发布时间】:2015-09-03 09:28:55 【问题描述】:

我必须赶上来自 GCM 的通知。 当我的应用程序处于后台模式时,我没有收到任何通知。但是当它在前台时我可以看到它们。

为了测试 GCM 的功能,我使用它:

curl -X POST -H "Authorization: key= KKKKKKKKKKKK" -H "Content-Type:    application/json" -d '"to":"XXXXXXXXX","data":"message": "It is special push notification for test!!!"' https://gcm-http.googleapis.com/gcm/send

我看到此消息(如果应用程序处于活动状态)。 但是当我使用它时:

curl -X POST -H "Authorization: key= KKKKKKKKKKK" -H "Content-Type: application/json" -d '"to":"XXXXXXXX","data":"message": "It is special push notification for test!!!","notification":"body":"great match!","title":"Portugal vs. Denmark","icon":"myicon"' https://gcm-http.googleapis.com/gcm/send

在这种情况下,我没有看到消息。

您知道如何通过 GCM 发送通知,该通知会在应用关闭时显示吗?

附: GCM 似乎不适用于 APN。

【问题讨论】:

如果您的应用完全终止,您的应用将无法收到推送通知。但是如果是在后台,可以将content_available设置为true,具体可以查看this *** answer。 大家好,当应用程序处于后台模式时,我会收到推送通知。但是当应用程序关闭时,我无法收到来自 GCM 的任何通知!有人解决了这个问题吗? @Yestay Muratov:你读过我的答案了吗?)也许你想在***.com/a/34712161/517134上查看问题 【参考方案1】:

您需要将优先级参数设置为高以通知ios设备。

proirity 的描述是;

设置消息的优先级。有效值为“正常”和 “高的。”在 iOS 上,这些对应于 APN 优先级 5 和 10。

默认情况下,消息以正常优先级发送。正常优先级 优化客户端应用的电池消耗,应该使用 除非需要立即交货。对于正常的消息 优先级,应用可能会以未指定的延迟接收消息。

当以高优先级发送消息时,它会立即发送,并且 该应用程序可以唤醒睡眠设备并打开网络连接到 你的服务器。

但我认为这还不够。

我为 Java 创建了一个library,它的测试用例会在苹果设备处于前台、后台或未运行时通知它们。

【讨论】:

以上是关于如何通过 GCM 向 iOS 设备发送推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何在基于 Java 的应用服务器上使用 GCM 向 iOS 设备发送推送通知

Python - 通过 FCM / APNs 向 IOS 或 Android 设备推送通知

如何接收应用程序停止或设备关闭时发送的 GCM 推送通知?

GCM 和 WNS 禁止向非活动设备发送推送通知的策略

通过java发送推送通知GCM [关闭]

从 php 推送到 GCM/APN 的最佳实践