当应用程序处于最小化状态并同时收到通知时,应在应用程序图标上看到徽章。
问问题
279 次
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 回答