Las notifications push de GCM no funcionan para iOS cuando la aplicación no está activa

He habilitado los modos de background en xcode y he marcado "Notificaciones remotas".

¿Debo habilitar "notifications push" también? para GCM

aquí está la carga de mi cliente de descanso

{ "data": { "displayMessage": { "message": "Package delivenetworking", } }, "registration_ids": [ "dgfdghdfghgfhhfjhgjghjghjhjghjghjghjghjghjghjhgggh" ], "content-available" : true, "priority": "high" } 

Esto funciona cuando la aplicación está en primer plano y no funciona cuando la aplicación no está en primer plano.

Cualquier ayuda para get este GCM para ios en funcionamiento sería muy apreciada.

Sugiero verificar el formatting del post como se menciona aquí:

Hacer que GCM funcione para el dispositivo iOS en segundo plano

Tu llave esta mal Use content_available , no content-available .

Además, su JSON no es válido. Específicamente, esto:

"message": "Package delivenetworking",

No debería tener una coma al final.

Este problema se produjo desde el lado del server. El cuerpo del post de notificación debería ser así.

 { "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "content_available" : "true" "notification" : { "body" : "great match!", "title" : "Portugal vs. Denmark" } } 

Aquí está el código que he implementado y que funciona bien.

 <?php // Message to send $notificationTitle = "Notification title"; $notificationtBody = "Notification arrived"; $registrationId = 'GCM_DEVICE_TOKEN'; $apiKey = "GCM_SERVER_KEY"; $response = sendNotification( $apiKey, $registrationId, array( 'sound' => "default", 'badge' => 1, 'body' => $notificationtBody, 'title' => $notificationTitle ) ); echo $response; function sendNotification( $apiKey, $registrationId, $messageData ) { $headers = array("Content-Type:" . "application/json", "Authorization:" . "key=" . $apiKey); $data = array( 'to' => $registrationId, 'content_available' => true, 'notification' => $messageData ); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send" ); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data) ); $response = curl_exec($ch); curl_close($ch); return $response; } 

Esta notificación funcionó para mí

 { "to":"ID", "notification":{ "sound":"default", "title":"TITLE", "body":"BODY" }, "priority": "high" }