如何通过 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 设备发送推送通知