didReceiveRemoteNotification:fetchCompletionHandler:不从服务器获取

时间:2014-12-25 09:43:41

标签: ios apple-push-notifications completionhandler

我希望推送通知让我的应用从服务器获取内容。我使用RESTKit。 我试图实现application:didReceiveRemoteNotification:fetchCompletionHandler:然后执行我的REST请求(这是一个块)。我可以在日志中看到请求已发送,但后来没有答案。我猜是因为应用程序在后台。我该如何解决?

1 个答案:

答案 0 :(得分:0)

我用块解决了问题。 我的代码是:

- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
     NSString *type = [userInfo valueForKey:@"type"];
     if ([type isEqualToString:@"message"]) {
         [self.viewController fetchFromServerWithSuccesBlock:^{
             NSLog(@"succes block");
             completionHandler(UIBackgroundFetchResultNewData);
         } withFailBlock:^{
             NSLog(@"fail block");
             completionHandler(UIBackgroundFetchResultNewData);
         }];
     }
}

这样,当我的请求块完成时,completionHandler被调用。