推送通知不在后台接收iOS
我正在通过GCM在我的项目中推送通知。我的应用程序能够在前台接收通知,但不能在后台接收通知。推送通知不在后台接收iOS
我收到一个消息的方法
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
内当应用程序在前台,但我没有得到任何调用方法
func application(application: UIApplication,
didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
fetchCompletionHandler handler: (UIBackgroundFetchResult) -> Void)
当在后台模式下应用。
我在互联网上搜索了很长时间,才知道这是我收到的有效载荷格式的问题。我收到的有效载荷看起来像
[通知:{ “体”: “任何东西”, “称号”: “任何标题”},优先级:高,content_available:真,至:kcF23gblKok ..., collapse_key:do_not_collapse,from:7812 ....]
任何人都可以告诉我正确的载荷格式吗?
使用该有效载荷
{
"aps": {
"alert": "Hello World",
"sound": "default"
"content-available" :1
}
}
随着内容可用启用:
1应用程序是在前台
显示
申请号系统警报:didReceiveRemoteNotification:fetchCompletionHandler:被称为
2应用程序在后台
系统警报显示
应用:didReceiveRemoteNotification:fetchCompletionHandler:被称为
3App处于挂起
应用程序状态更改为背景
系统警报显示
application:didReceiveRemoteNotification:fetchCompletionHandler:被调用
4应用程序无法运行,因为用户终止
系统警报显示
没有回调被称为
在这种模式
{
"to": "ID",
"notification": {
"sound": "default",
"title": "TITLE",
"body": "BODY"
},
"priority": "high"
}
创建通知谁打交道的人与Pushy而不是GSM,当应用程序在后台时,可能不会调用pushy的完成处理程序,因为这样:
即使你配置通知有效载荷与propriate键和值,例如:
{"to":"device***Token", "data": {"message": "Hello World!"}, "notification": {"title": "test", "body": "my message"}, "content_available": true}
,并使用爱出风头的控制台发送,它发生,所有这些数据都放在爱出风头的网站领域:“通知数据” 。因此,使用控制台我们发现无法发送:true,对于key:“content_available”,这是在应用程序处于后台时涉及处理程序的必要步骤。
您可以通过使用邮差例如,配置你的要求,因为这摆脱这种:
- 类型:POST;
- raw;
- url:https://api.pushy.me/push?api_key=YOUR_APP_API_KEY;
- Content-Type:application/json;
而且在您需要发送的身体地方的东西,例如:
{"data":{"message": "Hello World!"},"tokens":["device***Token"],"content_available": true}
有了这个,您需要将“content_available”键内的“APS”,而不是内部的“数据”,这将在应用程序处于后台时调用处理程序。
如果在应用程序未运行时推送到达,则不执行任何代码。查看http://stackoverflow.com/questions/11153631/increment-the-push-notification-badge-iphone – ozgur
我确切的问题是,我没有收到任何消息,当应用程序进入后台模式。在前景模式下,所有消息都成功接收。 – SAJITH
你打开了背景模式功能吗? – mmtootmm