单击后从通知中心中移除通知

15

当用户点击推送通知并启动应用程序时,是否可以从通知中心中删除该推送通知?

大多数应用似乎会保留通知。我在另一个问题中读到这样一句话:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 

可能会起作用,但对我来说不起作用。

Facebook应用程序似乎确实会在被点击后删除推送通知。


iPad 有什么特殊性吗? - user1899012
你好!这个问题有什么解决方案吗?谢谢! - Frade
1个回答

23
int badgeCount = [UIApplication sharedApplication].applicationIconBadgeNumber;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeCount];

如果你在两个地方都加上这一行:

- (void)applicationWillEnterForeground:(UIApplication *)application

并且

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions
您将保留徽章计数,并在通知中心中点击时清除推送通知。

16
如果我只想删除用户点击过的通知,而不是通知中心里的所有通知,该怎么办? - Alaa Nassef
1
根据这个链接:https://dev59.com/gWkw5IYBdhLWcg3wZJp9 你是无法做到的。 - Matt Hudson
1
@AlaaNassef 当然可以, [[UIApplication sharedApplication] cancelLocalNotification:yournotification]; - Yiding
它对我不起作用。当我点击通知时,通知没有被清除。 - Nirmalsinh Rathod

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