通过编程从通知中心中删除远程通知

4

我们如何实用主动方法在应用启动时从通知中心删除所有待处理的远程通知。我想在应用启动时清除这些通知。

我尝试使用[[UIApplication sharedApplication] cancelAllLocalNotifications]; API,但未起到作用。

注:此问题特定于iOS 10,旧线程不是此问题的副本。


可能是从通知中心删除单个远程通知的重复问题。 - Sargis
1
@SargisGevorgyan 这不能被标记为重复,因为分享的链接讨论的是非iOS 10的解决方案。iOS 10以不同的方式处理它! - Abhinav
5个回答

12

最后...

这个像魔法一样好用!

[[UNUserNotificationCenter currentNotificationCenter] removeAllDeliveredNotifications];

0
据我所知,您应该使用远程通知的后台模式,然后通过发出本地通知来响应这些通知。 您可以删除本地通知,但无法删除远程通知。

谢谢您的回复。您能否指向确认远程通知无法从通知中心中删除的文档?我在网上找到了多个版本。 - Abhinav
目前还找不到官方文档,但你可以先在这里看一下:http://stackoverflow.com/questions/24231120/remove-remote-notification-from-notification-center - Mehul Parmar
可以的。请看我的回答。 - Abhinav

0

0

您可以使用以下简单的代码行从通知中心清除所有通知

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];

可以在任何地方使用。我在用户注销时使用过。 你可以在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

应用程序打开后清除通知的方法


我已经尝试过这个了,但并没有帮助。我在谈论远程通知。也许我应该编辑我的问题。 - Abhinav
这行代码 [UIApplication sharedApplication].applicationIconBadgeNumber=0; 也会清除推送通知。 - Himanth
这不是真的! - Abhinav

0

重置应用程序徽章数字也会从通知中心中删除所有通知(本地和远程)。

Objective C

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

Swift

UIApplication.shared.applicationIconBadgeNumber = 0

有没有一种方法可以在不删除所有通知的情况下重置徽章计数? - fabb

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