ver recuperar pantalla notificaciones historial funciona encendido desactivar con como centro borradas bloqueada iphone ios xcode push-notification apple-push-notifications

iphone - recuperar - Notificación de inserción de iOS: cómo obtener los datos de notificación cuando hace clic en el icono de la aplicación en lugar de en la notificación



recuperar notificaciones iphone (4)

Debería recibir la notificación en el método launchWithOptions en su aplicación. Deje algo así:

NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey]; if(remoteNotif != nil){ //Handle your notification }

Similar a esta pregunta: ¿Cómo accedo a los datos de notificación push remotos en applicationDidBecomeActive?

Pero lo diferente es cómo puede acceder a los datos de notificación cuando se encuentra en applicationDidBecomeActive y si ha hecho clic en el ícono de la aplicación en lugar de la notificación push.

El flujo es: si hace clic en la push notification didReceiveRemoteNotification , se activará didReceiveRemoteNotification , pero si hace clic en el ícono de la aplicación original, solo se activará didReceiveRemoteNotification y no se llamará a didReceiveRemoteNotification .

Estoy buscando el caso posterior, así que ¿cómo puedo acceder a los datos de notificación de inserción?

(Ambos casos suponiendo que la aplicación está en segundo plano y no se ha eliminado aún).


La respuesta de @fannheyward es absolutamente correcta. No puede obtener la carga útil cuando se inicia la aplicación tocando el ícono de la aplicación.

Tengo una idea, ¿qué pasa si sabes que hay alguna notificación pendiente cuando se inicia la aplicación tocando el ícono de la aplicación? Con este conocimiento, su aplicación puede recuperar la carga de su servidor.

Puede configurar "Badge" en cada una de esas notificaciones y en applicationDidBecomeActive puede marcar [application applicationIconBadgeNumber]> 0 para saber que alguna notificación está activa. Después de obtener la carga útil de su servidor, puede configurarlo en 0 como a continuación

[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

Tenga en cuenta: Esto significa que su aplicación mostrará la insignia cuando se reciba una notificación. No estoy seguro del comportamiento cuando el usuario deshabilita la insignia desde la configuración.


No puede obtener la carga útil de inserción remota iniciando la aplicación desde la pantalla de inicio.

Si los datos de inserción son importantes para el uso de la aplicación, cárguela de su servidor después de que se inicie la aplicación.


Si el objetivo de su aplicación es sobre iOS7, puede hacerlo solo si la aplicación está activa en el backgroud.

En la configuración de capacidades de Xcode, debe habilitar los modos de fondo> notificaciones remotas y escribir debajo del código.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { // save userInfo in NSUserDefaults completionHandler( UIBackgroundFetchResultNoData ); }

Si desea probarlo, será útil utilizar https://github.com/acoomans/SimulatorRemoteNotifications

  • Desde el lado del servidor, asegúrese de establecer la propiedad de contenido disponible con un valor de 1

Para que esto funcione, también tuve que verificar el cuadro de búsqueda de fondo.