iOS上的GCM不会发送content_available通知的数据对象

时间:2015-07-21 19:05:44

标签: ios google-cloud-messaging

当我发送设置了content_available = true标志的GCM消息时,didReceiveRemoteNotification:callback中的userInfo字典为空。

这是我的UIApplication委托中的回调:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler {
    NSLog(@"Notification: %@", userInfo);
    [[GCMService sharedInstance] appDidReceiveMessage:userInfo];
    handler(UIBackgroundFetchResultNoData);
}

以下是一个有效的CURL请求示例:

curl --header 'Authorization: key=…' --header 'Content-Type: application/json' -d '{ "registration_ids": ["…"], "data": { "test": "test test test" }}' https://android.googleapis.com/gcm/send

我得到了预期的结果:

Notification: {"collapse_key" = "do_not_collapse";    from = …;    test = "test test test";\^J}

但是,当我添加content_available标志,以便在应用程序处于后台时推送可以正常工作:

curl --header 'Authorization: key=…' --header 'Content-Type: application/json' -d '{ "registration_ids": ["…"], "data": { "test": "test test test" }, "content_available": true}' https://android.googleapis.com/gcm/send

NSLog为userInfo对象输出“(null)”。还有其他人遇到过这个问题并有解决方法吗?

1 个答案:

答案 0 :(得分:0)

看起来这只是iOS 9 beta 3的一个问题,它可以在iOS 8.4上正常运行。