didReceiveRemoteNotification no se llamó en modo de background

Estoy trabajando en notifications push y los datos que recibo están en formatting JSON. ¿Cómo puedo analizar los datos JSON, que se muestran en el Centro de notifications a continuación:

Solo necesito la descripción

si su aplicación en segundo plano / modo en primer plano llama a este método

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler 

si usaste el método anterior, enfrentarás el siguiente error en la console

application: didReceiveRemoteNotification: fetchCompletionHandler:], pero aún necesita agregar "notificación remota" a la list de sus UIBackgroundModes compatibles en su Info.plist.

Para resolver este problema

sigue la image de los pasos

introduzca la descripción de la imagen aquí

si su aplicación en modo de primer plano llama a este método

 - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo 

opción no-2

  - (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { UIApplicationState state = [application applicationState]; // user tapped notification while app was in background if (state == UIApplicationStateInactive || state == UIApplicationStateBackground) { // go to screen relevant to Notification content } else { // App is in UIApplicationStateActive (running in foreground) // perhaps show an UIAlertView } } 

Rápido

 func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { var state: UIApplicationState = application.applicationState() // user tapped notification while app was in background if state == .Inactive || state == .Background { // go to screen relevant to Notification content } else { // App is in UIApplicationStateActive (running in foreground) // perhaps show an UIAlertView } } 

Si el método didReceiveRemoteNotification no se llama en modo de background, siga los pasos a continuación.

Primero en la notificación de inserción y marque la checkbox de notifications remotas del modo de background en las capacidades de destino

Entonces

 -(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { if( [UIApplication shanetworkingApplication].applicationState == UIApplicationStateInactive ) { NSLog( @"INACTIVE" ); } else if( [UIApplication shanetworkingApplication].applicationState == UIApplicationStateBackground ) { NSLog( @"BACKGROUND" ); } else { NSLog( @"FOREGROUND" ); } return YES; }