didReceiveRemoteNotification fetchCompletionHandler未在后台调用以进行静默推送

时间:2015-06-19 11:01:47

标签: ios background push-notification apple-push-notifications

所以我添加了didReceiveRemoteNotification委托来处理静默推送通知

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

应该在后台调用此方法以在通知用户之前更新内容,以便用户可以打开应用程序并立即显示新内容。

但是这种方法永远不会在后台调用。我试图调试这个问题,但没有成功。令人惊讶的是,如果我的应用程序处于前台,我可以正确调用此方法,并且我可以轻松检查content-available以更新UI。

有人可以帮助我解决为什么didReceiveRemoteNotification:fetchCompletionHandler未在后台调用的问题?

2 个答案:

答案 0 :(得分:0)

启用'远程通知'在'背景模式' '能力' xcode中的标签。

有关详细信息,请参阅此link

希望这有帮助。

答案 1 :(得分:0)

问题与不正确的有效负载有关。

我在aps之外得到content-available而不是它应该是aps的一部分。

有效负载:

{
   "_" = "asd-dfsd-werdsf";
   aps =     {
   };
   "content-available" = 1;
}

纠正有效载荷:

    {
       "_" = "asd-dfsd-werdsf";
       aps =     {
       "content-available" = 1;
       };
    }