应用程序在后台时如何更新徽章编号

时间:2014-02-25 06:37:41

标签: ios iphone objective-c

我正在创建一个iOS应用程序,我从服务器获取徽章编号,而应用程序在前台,我正在更新徽章编号

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

}

但是当应用程序处于后台时,我不知道应该调用哪个函数。

4 个答案:

答案 0 :(得分:1)

您可以从服务器本身发送徽章编号。

默认情况下,当您在APN有效负载中指定徽章编号时,无需设置应用程序的徽章编号。如果您没有从服务器收到徽章编号,那么在用户打开应用程序之前,您无法继续执行此操作。

但是 ios7 APN 有一个新功能。

设置标记 Content-Available:1会让您的应用程序在收到通知后立即运行,您可以在那里设置您的徽章编号。

答案 1 :(得分:1)

您可以像这样的推送通知发送徽章编号

{"aps":{"badge":"3","alert":"help","sound":"sound.caf"}}

答案 2 :(得分:1)

当应用程序在后台时,didReceiveRemoteNotification方法永远不会调用。为了在你的应用程序处于后台时做某事,你需要在AppDelegate的applicationDidEnterBackground:方法中实现你的逻辑,如。

-(void)applicationDidEnterBackground:(UIApplication *)application
{
    [UIApplication sharedApplication].applicationIconBadgeNumber = 2;
}

答案 3 :(得分:0)

使用此

- (void)applicationDidEnterBackground:(UIApplication *)application
{

   [UIApplication sharedApplication].applicationIconBadgeNumber = X;
  NSLog(@"Application Did Enter Background");
}

在推送通知的有效负载中发送您的徽章编号