Tengo una aplicación de iOS a la que se envían algunas notificaciones push. Mi problema es que los mensajes / notificaciones permanecen en el Centro de notificaciones en iOS después de pulsarlos. ¿Cómo puedo eliminar una notificación de mi aplicación en el Centro de notificaciones la próxima vez que se abra la aplicación?
Me encontré con publicaciones en las que las personas están llamando setApplicationIconBadgeNumber
a un valor cero para borrar las notificaciones. Eso me parece muy extraño, así que creo que tal vez exista otra solución.
EDIT1:
Tengo algunos problemas para borrar las notificaciones. Por favor vea mi código aquí:
- (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];
}
Estoy ejecutando la aplicación a través de Xcode. Cuando la aplicación se minimiza e inicio la aplicación usando la notificación en el centro de notificaciones, puedo ver en el registro que didReceiveRemoteNotification
se llama y usando puntos de interrupción puedo ver que se clearNotifications
ha ejecutado. Pero aún así, la notificación se cuelga en el Centro de notificaciones. ¿Por qué?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650