收到推送通知时清除徽章
Posted
技术标签:
【中文标题】收到推送通知时清除徽章【英文标题】:Clearing the badge when received Push Notification 【发布时间】:2011-04-28 21:16:15 【问题描述】:当我收到推送通知时,如何清除应用程序图标上显示的徽章?一旦用户点击了推送通知警报的“查看”或点击了应用程序图标,我想清除它。
【问题讨论】:
【参考方案1】:我怀疑你说的是 SpringBoard 的徽章:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
【讨论】:
【参考方案2】:徽章计数设置为零
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
使用此代码取消所有本地通知:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
用这行代码取消一个本地通知:
[[UIApplication sharedApplication] cancelLocalNotification:theNotification];
这里的Notification是一个UILocalNotification对象,所以为了取消一个特定的通知,你需要抓住它的UILocalNotification。
检查this。
【讨论】:
【参考方案3】:对于 Mac OS X Lion,它是:
[NSApp dockTile].badgeLabel = @"";
(Lion 支持徽章类型的推送通知。)
【讨论】:
【参考方案4】:从 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
【讨论】:
以上是关于收到推送通知时清除徽章的主要内容,如果未能解决你的问题,请参考以下文章
每当我的应用收到推送通知时,它都会从最后一个徽章编号(不是 0)递增
IBM Worklight 6.1 - 来自推送通知的磁贴徽章从未在 Windows Phone 8 上清除