5

Sto tentando di inviare notifiche push alla mia app iOS con GCM. L'app non riceve la notifica quando è in background, ma lo fa quando è in primo piano. Stavo testando le notifiche push con uno script PHP che invia il messaggio direttamente all'APNS e funziona in background.Notifica push GCM quando l'app iOS è in background

Il JSON inviati GCM: (sto inviarlo da un client di riposo per i test)

{ 
    "to" : "token...", 
    "notification" : { 
    "title": "GCM TITLE", 
    "body" : "FROM GCM", 
    "badge": "1", 
    "sound": "default" 
    } 
} 

Non funziona: L'userInfo ricevuta da GCM in didReceiveRemoteNotification:

Notification received: [aps: { 
    alert =  { 
     body = "FROM GCM"; 
     title = "GCM TILE"; 
    }; 
    badge = 1; 
    sound = default; 
}, gcm.message_id: 123...] 

Working: L'userInfo ricevuto quando è stato inviato dallo script PHP (Ho anche aggiunto message_id al JSON per vedere se questo è il problema)

Notification received: [aps: { 
    alert =  { 
     body = "FROM PHP"; 
     title = "PHP TITLE"; 
    }; 
    badge = 2; 
    sound = default; 
}, gcm.message_id: 123...] 

Ho provato ad aggiungere content_available al JSON con diverse combinazioni, ma non ha aiutato, il tipo di contenuto e di autorizzazione intestazioni di richiesta sono anche impostare:

Content-Type:application/json 
Authorization:key=... 
+0

può o non può lavorare, ho avuto un problema simile, provare a rimuovere il titolo dal JSON – Rob85

+0

grazie per il consiglio! sfortunatamente non funziona ancora – barna941

+0

riscuoti un successo dal GCM? quale ambiente stai testando, hai archiviato l'app o test direttamente sul dispositivo? – Rob85

risposta

8

Nel caso in cui qualcuno ha lo stesso problema, la soluzione era per me aggiungere la "priorità": "alta" al JSON. In questo modo ottengo le notifiche in background.

{ 
    "to" : "token...", 
    "priority": "high", 
    "notification" : { 
    "title": "GCM TITLE", 
    "body" : "FROM GCM", 
    "badge": "1", 
    "sound": "default" 
    } 
} 
0

da avere la notifica quando applicazione è in background faccio notare che abbiamo bisogno di aggiungere:

"content_available":true // when app in background 
"priority":"high" //when app is completely closed not even running in background 

// "content_available":true ..most important field 

{ 
"to" : "token...", 
"priority":"high", 
"content_available":true, 
"notification" : { 
"title": "GCM TITLE", 
"body" : "FROM GCM", 
"badge": "1", 
"sound": "default" 
    } 
} 
Problemi correlati