如何在收到推送通知时清除应用程序图标上显示的徽章?我想在用户点击“推送通知提醒”的“查看”或点击应用图标后清除它。
答案 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;
}