繁体   English   中英

当应用程序处于最小化模式时,如何在应用程序图标上设置徽章?

[英]How to set badges on app icon when app is in minimize mode?

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

如果收到通知,而您的应用程序不是前台,则操作系统将处理该通知。

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

通知主体如下所示:

{
    "aps" : {
        "badge" : 9
    }
}

这是我的解决方案。 我需要在一个应用程序中实现与我所做的相同的事情。 我有一个下载队列,并想使用徽章显示剩余的下载数量,并且即使在后台也要不断更新。 基本上,我的解决方案是,每次完成一个下载时,我都会设置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:上面的方法。 希望这会有所帮助,如果确实将其标记为答案:)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM