ver recuperar pantalla notificaciones historial funciona como centro borradas bloqueada aparece ios uilocalnotification

ios - pantalla - recuperar notificaciones iphone



Encuentra la lista de notificaciones locales que la aplicaciĆ³n ya ha establecido. (8)

Mi aplicación permite a los usuarios configurar una serie de recordatorios en el futuro. Cuando la aplicación aparezca, quiero saber qué recordatorios (notificaciones) ya se han establecido.

¿Puedo volver a leer las notificaciones que he configurado o debo almacenar en mi aplicación (por ejemplo, Core Data o Plist)?


@Scott Berrevoets dio la respuesta correcta. Para enumerarlos realmente, es sencillo enumerar los objetos en la matriz:

[[[UIApplication sharedApplication] scheduledLocalNotifications] enumerateObjectsUsingBlock:^(UILocalNotification *notification, NSUInteger idx, BOOL *stop) { NSLog(@"Notification %lu: %@",(unsigned long)idx, notification); }];


En iOS 10 , usando el nuevo framework UserNotifications :

UNUserNotificationCenter.current().getPendingNotificationRequests { (notificationRequests) in print("Requests: /(notificationRequest)") }


En Swift, para ver todas las notificaciones locales programadas actualmente impresas en la consola:

print(UIApplication.sharedApplication().scheduledLocalNotifications)


Para Swift 3.0 y Swift 4.0

No olvides import UserNotifications

let center = UNUserNotificationCenter.current() override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) center.getPendingNotificationRequests { (notifications) in print("Count: /(notifications.count)") for item in notifications { print(item.content) } } }


Scott tiene razón.

UIApplication de UIApplication scheduledLocalNotifications

Aquí está el código:

NSMutableArray *notifications = [[NSMutableArray alloc] init]; [notifications addObject:notification]; app.scheduledLocalNotifications = notifications; //Equivalent: [app setScheduledLocalNotifications:notifications];

UIApplication *app = [UIApplication sharedApplication]; NSArray *eventArray = [app scheduledLocalNotifications]; for (int i=0; i<[eventArray count]; i++) { UILocalNotification* oneEvent = [eventArray objectAtIndex:i]; NSDictionary *userInfoCurrent = oneEvent.userInfo; NSString *uid=[NSString stringWithFormat:@"%@",[userInfoCurrent valueForKey:@"uid"]]; if ([uid isEqualToString:uidtodelete]) { //Cancelling local notification [app cancelLocalNotification:oneEvent]; break; } }

NSArray *arrayOfLocalNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications] ; for (UILocalNotification *localNotification in arrayOfLocalNotifications) { if ([localNotification.alertBody isEqualToString:savedTitle]) { NSLog(@"the notification this is canceld is %@", localNotification.alertBody); [[UIApplication sharedApplication] cancelLocalNotification:localNotification] ; // delete the notification from the system } }

Para obtener más información, echa un vistazo a esto: Ejemplo de programación de notificaciones locales UIA UIA aplicación


Swift 3.0.2:

UIApplication.shared.scheduledLocalNotifications


Swift 4

UNUserNotificationCenter.current().getPendingNotificationRequests(completionHandler: { (requests) in for request in requests { if request.identifier == "IDENTIFIER YOU''RE CHECKING IF EXISTS" { //Notification already exists. Do stuff. } else if request === requests.last { //All requests have already been checked and notification with identifier wasn''t found. Do stuff. } } })

Utilicé esto para corregir un error donde la misma notificación semanal ya estaba configurada y se estaba configurando de nuevo cuando la aplicación se abriría, por lo que seguiría reiniciando el temporizador para que apareciera, lo que significa que nunca apareció.