2010-07-02 16 views
15

Considerando que recibo una notificación presionada en mi iPhone.iOS - Manejo de notificaciones push con APNS

Lo que sucede:

  1. Si se inicia la aplicación: ¿hay una manera de conseguir la carga útil? ¿Veo la notificación en mi pantalla?
  2. Si la aplicación no se inicia, ¿hay alguna forma de obtener la carga útil?

Thx por sus respuestas

Respuesta

34

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.

+3

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

+0

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 –

+0

+1 ¡¡Gran explicación !! – swiftBoy

Cuestiones relacionadas