当我收到推送通知时,应用程序图标上会出现徽章,我希望在用户点击“查看”推送通知警报或点击应用程序图标后清除它。如何清除徽章?
当我收到推送通知时,应用程序图标上会出现徽章,我希望在用户点击“查看”推送通知警报或点击应用程序图标后清除它。如何清除徽章?
我猜你在谈论SpringBoard的徽章:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
徽章计数设置为零
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
使用以下代码取消所有本地通知:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
[[UIApplication sharedApplication] cancelLocalNotification:theNotification];
这里的theNotification是一个UILocalNotification对象,所以要取消特定通知,需要保留它的UILocalNotification。
请参考这个链接。
对于Mac OS X Lion,操作如下:
[NSApp dockTile].badgeLabel = @"";
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;
}