Ho un'applicazione iOS a cui vengono inviate alcune notifiche push. Il mio problema è che i messaggi / notifiche rimangono nel Centro notifiche in iOS dopo di che vengono toccati. Come posso rimuovere una notifica per la mia applicazione nel Centro notifiche la prossima volta che l'applicazione si apre?
Mi sono imbattuto in post in cui le persone chiamano setApplicationIconBadgeNumber
un valore zero per cancellare le notifiche. Mi sembra molto strano, quindi credo che forse esiste un'altra soluzione?
Edit1:
Ho dei problemi a cancellare le notifiche. Si prega di vedere il mio codice qui:
- (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];
}
Sto eseguendo l'app tramite Xcode. Quando l'app è ridotta a icona e avvio l'app utilizzando la notifica nel Centro notifiche, posso vedere nel registro che didReceiveRemoteNotification
è stata chiamata e utilizzando i punti di interruzione posso vedere che clearNotifications
è stata eseguita. Ma la notifica si blocca ancora nel Centro notifiche. Perché?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650