1

当应用程序处于最小化状态并同时收到通知时,应在应用程序图标上看到徽章。

4

2 回答 2

0

如果通知到达并且您的应用程序不是前台,则操作系统会处理通知。

您的通知可以包含一个字段,该字段badge将使操作系统更新徽章。但是,这意味着发送通知的服务器必须有办法知道哪个数字应该是徽章。

通知正文如下所示:

{
    "aps" : {
        "badge" : 9
    }
}
于 2012-05-31T12:51:43.113 回答
0

这是我的解决方案。我需要在我所做的应用程序中实现相同的目标。我有一个下载队列,想使用徽章来显示剩余的下载量,即使在后台也能继续更新。基本上我的解决方案是,每次下载完成时,我都会设置一个UILocalNotification静音,没有消息文本。只需设置徽章..如下所示..

- (void)queRequestFinished:(ASIHTTPRequest *)request {

    self.inResourceCount -= 1; // Deducted 1 from the total count of downloads in queue.

    Class cls = NSClassFromString(@"UILocalNotification");
    if (cls != nil) {

    UILocalNotification *notif = [[cls alloc] init];
    notif.fireDate = [NSDate  date]; // Schedule notification for now.
    notif.timeZone = [NSTimeZone defaultTimeZone];
    notif.soundName = @"silence.caf";
    notif.applicationIconBadgeNumber = inResourceCount; // Number you want displayed as Badge.

    // This is where the magic happens, and actually changes your badge.    
    [[UIApplication sharedApplication] scheduleLocalNotification:notif];

    [notif release];
   }

}

我想指出,我的情景可能与你的不同。我正在使用ASIHTTPRequest库,它支持在后台继续下载,queRequestFinished:即使在后台也调用上述方法。希望这会有所帮助,如果它确实将其标记为答案:)。

于 2012-05-31T13:16:10.027 回答