当收到推送通知时如何清除徽章?

8

当我收到推送通知时,应用程序图标上会出现徽章,我希望在用户点击“查看”推送通知警报或点击应用程序图标后清除它。如何清除徽章?

4个回答

22

我猜你在谈论SpringBoard的徽章:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]

4

徽章计数设置为零

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]

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

[[UIApplication sharedApplication] cancelAllLocalNotifications];

用这行代码取消一个本地通知:
[[UIApplication sharedApplication] cancelLocalNotification:theNotification];

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

请参考这个链接


2

对于Mac OS X Lion,操作如下:

    [NSApp dockTile].badgeLabel = @"";

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

0
从苹果的文档中可以得知,将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;
}

参考 - 向下滚动到 2.4 列表上方的处理本地和远程通知部分


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接