Tengo una aplicación iOS 5.1 que se registra en el servicio APNS para recibir notificaciones. El registro es exitoso y recibo las notificaciones correctamente. El problema surge cuando trato de manejar las notificaciones.¿Cómo puedo manejar las notificaciones push no leídas en iOS?
Una vez que la aplicación se está ejecutando, el método didReceiveRemoteNotification
en el AppDelegate se llama correctamente y la notificación se maneja según lo previsto. Sin embargo, esto solo ocurre cuando la aplicación se ejecuta en primer plano.
Sin embargo, cuando la aplicación se ejecuta en segundo plano o simplemente se detiene, no se llama a ese método. He leído que debe agregar algunas líneas al método didFinishLaunchingWithOptions
para obtener la notificación del diccionario userInfo
y manejarlo. Esto funciona bien, pero SÓLO cuando la aplicación se abre haciendo clic en la notificación en el Centro de notificaciones. Esto significa que si abre la aplicación haciendo clic en su insignia, o simplemente cambiando el contexto si la estaba ejecutando en segundo plano, la aplicación nunca se da cuenta de que se recibió una notificación. Además, si recibió más de una notificación, podemos solo maneja uno de ellos a la vez haciendo clic en el Centro de notificaciones, que es un problema :-)
¿Hay alguna forma de leer las notificaciones pendientes en el Centro de notificaciones? Sé que hay una forma de eliminarlos usando el método cancelAllLocalNotifications
, pero no he encontrado la manera de leerlos. Y realmente necesito manejarlos a todos. Pensé en implementar un protocolo de comunicación con el servidor de notificación de terceros para recuperar la información nuevamente cuando la aplicación salga a primer plano, pero como la información ya está en el sistema operativo, me resultaría extraño si es imposible acceder a ella de alguna manera.
Entonces, ¿alguien sabe una manera de hacerlo? Gracias por adelantado.
Lo que es cierto es que no se garantiza que lleguen las notificaciones automáticas. Quizás estoy perdiendo el tiempo tratando de leerlos del servicio de notificación, porque tampoco puedo estar seguro de que contenga toda la información que quiero. De todos modos, necesito saber si hay una manera de hacerlo, antes de descartar cualquier solución ... – Bartserk
Estás en lo correcto. Hasta donde yo sé, no hay otra solución más que ir a buscar desde el lado del servidor. –