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



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

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

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

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

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

当应用程序在后台时didReceiveRemoteNotification该方法从不调用。要在应用程序在后台运行时执行某些操作,您需要在 AppDelegate 的 applicationDidEnterBackground: 方法中实现您的逻辑。

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

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

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

但是在ios7中,APN有一个新功能。

通过设置标志Content-Available:1将让您的应用程序在收到通知后立即运行,您可以在其中设置您的徽章编号。

使用这个

- (void)applicationDidEnterBackground:(UIApplication *)application
{
   [UIApplication sharedApplication].applicationIconBadgeNumber = X;
  NSLog(@"Application Did Enter Background");
}

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

最新更新