primer lugar de todas las notificaciones push no son “fuerte”, si simplemente deja una sentada notificación durante el tiempo suficiente (por ejemplo teléfono apagado durante muchos días) que conseguirá descartado. Es necesario realizar algunos procesos de back-end personalizados para conservar el contenido enviado en las notificaciones.
En el protocolo UIApplicationDelegate
hay application:didFinishLaunchingWithOptions:
. Si el usuario inicia su aplicación presionando el botón derecho en una alerta de una notificación de inserción, el diccionario launchOptions
vinculado a la llamada al método contendrá información con respecto a esa notificación; si su aplicación ya se está ejecutando, se llamará a application:didReceiveRemoteNotification:
(también en el protocolo de delegado).
Así,
Si se inicia la aplicación, y se implementa application:didReceiveRemoteNotification:
entonces sí que reciben la carga útil. De lo contrario, no pasa nada.
Si la aplicación no se inicia en el momento en que se envía la notificación, el usuario toca la alerta de la notificación y lanza su aplicación, su aplicación obtiene la carga útil si implementa application:didFinishLaunchingWithOptions:
. De lo contrario, no obtienes nada.
Me he dado cuenta de que en algún momento antes de hoy (07/03/2012) 'launchOptions' ya no se utiliza. Después de abrir la aplicación, en su lugar se llama a 'didReceiveRemoteNotification'. – Jacksonkr
Si no se incluye ninguna alerta, el método didReceiveRemoteNotification: nunca se llama para las aplicaciones de fondo. No es posible con iOS 6 recibir cargas sin interacción del usuario cuando su aplicación no está en primer plano. La documentación menciona este hecho, aunque en silencio. https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW4 –
+1 ¡¡Gran explicación !! – swiftBoy