J'ai une application iOS à laquelle certaines notifications push sont envoyées. Mon problème est que les messages / notifications restent dans le centre de notifications dans iOS après avoir été tapés. Comment puis-je supprimer une notification pour mon application dans le centre de notifications à la prochaine ouverture de l'application?
Je suis tombé sur des messages où les gens appellent setApplicationIconBadgeNumber
à une valeur zéro pour effacer les notifications. Cela me semble très étrange, alors je crois qu'il existe peut-être une autre solution?
EDIT1:
J'ai des problèmes pour effacer les notifications. S'il vous plaît voir mon code ici:
- (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];
}
J'exécute l'application via Xcode. Lorsque l'application est réduite et que je démarre l'application en utilisant la notification dans le centre de notifications, je peux voir dans le journal, que le didReceiveRemoteNotification
est appelé et en utilisant des points d'arrêt que je peux voir, que le clearNotifications
s'est exécuté. Mais la notification se bloque toujours dans le centre de notifications. Pourquoi?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650