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

时间:2015-09-03 09:28:56

标签: ios iphone push-notification google-cloud-messaging

我必须赶上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发送通知,该通知会在应用关闭时显示吗?

P.S。看起来GCM不适用于APN。

1 个答案:

答案 0 :(得分:1)

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

proirity的描述是;

  

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

     

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

     

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

但我认为这不是一个足够的描述。

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