我有一个iOS应用程序,其中向其中发送了一些推送通知。我的问题是,在点击邮件/通知后,它们会留在iOS的通知中心中。下次打开应用程序时,如何在通知中心中为我的应用程序删除通知?
我碰到过有人呼吁setApplicationIconBadgeNumber
零值清除通知的帖子。对我来说这似乎很奇怪,所以我相信也许存在另一种解决方案?
编辑1:
我在清除通知时遇到了一些问题。请在这里查看我的代码:
- (void) clearNotifications {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dictionary != nil)
{
NSLog(@"Launched from push notification: %@", dictionary);
[self clearNotifications];
}
}
return YES;
}
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
NSLog(@"Received notification: %@", userInfo);
[self clearNotifications];
}
我正在通过Xcode运行该应用程序。当最小化应用程序并使用通知中心中的通知启动应用程序时,我可以在日志中看到didReceiveRemoteNotification
调用了,并使用断点看到了clearNotifications
已运行。但是通知仍然挂在通知中心中。为什么?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650