Tenho um aplicativo iOS para o qual algumas notificações push são enviadas. Meu problema é que as mensagens / notificações permanecem na Central de Notificações no iOS depois de serem tocadas. Como posso remover uma notificação do meu aplicativo na Central de Notificações na próxima vez que o aplicativo for aberto?
Me deparei com postagens onde as pessoas estão ligando setApplicationIconBadgeNumber
para um valor zero para limpar as notificações. Isso me parece muito estranho, então acredito que talvez exista outra solução?
EDIT1:
Estou tendo problemas para limpar as notificações. Por favor, veja meu código aqui:
- (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];
}
Estou executando o aplicativo através do Xcode. Quando o aplicativo é minimizado e eu inicio o aplicativo usando a notificação na Central de notificações, posso ver no log que o didReceiveRemoteNotification
é chamado e, usando pontos de interrupção, posso ver que o clearNotifications
foi executado. Mas ainda assim a notificação trava na Central de Notificações. Por quê?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650