收到推送通知后清除徽章

时间:2011-04-28 21:16:15

标签: iphone objective-c cocoa-touch push-notification

如何在收到推送通知时清除应用程序图标上显示的徽章?我想在用户点击“推送通知提醒”的“查看”或点击应用图标后清除它。

4 个答案:

答案 0 :(得分:22)

我怀疑你在谈论SpringBoard的徽章:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]

答案 1 :(得分:4)

徽章计数设置为零

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]

使用以下代码取消所有本地通知:

[[UIApplication sharedApplication] cancelAllLocalNotifications];

使用以下代码行取消一个本地通知:

[[UIApplication sharedApplication] cancelLocalNotification:theNotification];

这里theNotification是一个UILocalNotification对象,所以为了取消特定的通知,你需要保持它的UILocalNotification。

检查this

答案 2 :(得分:1)

对于Mac OS X Lion,它是:

    [NSApp dockTile].badgeLabel = @"";

(Lion支持徽章型推送通知。)

答案 3 :(得分:0)

从Apple的文档中,将application.applicationIconBadgeNumber设置为您想要在徽章上显示的数字。如果将其设置为0,则会将其清除。

- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

    if (localNotif) {
        NSString *itemName = [localNotif.userInfo objectForKey:ToDoItemKey];
        [viewController displayItem:itemName];  // custom method
        application.applicationIconBadgeNumber = localNotif.applicationIconBadgeNumber-1;
    }

    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
    return YES;
}

Reference - Scroll down to the Handling Local and Remote Notifications section just above listing 2.4