5

Ich versuche, Push-Benachrichtigungen an meine iOS App mit GCM zu senden. Die App erhält die Benachrichtigung nicht, wenn sie im Hintergrund ist, aber wenn sie im Vordergrund ist. Ich habe die Push-Benachrichtigungen auch mit einem PHP-Skript getestet, das die Nachricht direkt an den APNS sendet und im Hintergrund funktioniert.GCM Push-Benachrichtigung, wenn iOS App im Hintergrund ist

Die JSON gesendet GCM:

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

Problem (ich es von einem Rest-Client zum Testen bin das Senden): Die userinfo erhielt von GCM in didReceiveRemoteNotification:

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

Arbeiten: Die userInfo empfangen, wenn aus dem PHP-Skript gesendet (Ich habe auch die Nachricht_ID zum JSON hinzugefügt, um zu sehen, ob das ist das Problem)

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

Ich habe versucht, das Hinzufügen content_available zum JSON mit verschiedenen Kombinationen, aber nicht helfen, werden die Content-Type und Authorization Request-Header ebenfalls gesetzt:

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

oder nicht arbeiten kann, ich ein ähnliches Problem hatte, versuchen, den Titel aus dem JSON – Rob85

+0

durch Entfernen für den Rat! leider klappt es immer noch nicht – barna941

+0

bekommst du einen erfolg zurück vom GCM? Welche Umgebung testen Sie, haben Sie die App archiviert oder direkt auf dem Gerät getestet? – Rob85

Antwort

8

Im Fall, wenn jemand das gleiche Problem, die Lösung war für mich, die "Priorität": "hoch" zu dem JSON hinzuzufügen. Auf diese Weise bekomme ich die Benachrichtigungen im Hintergrund.

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

Benachrichtigung zu erhalten, wenn App im Hintergrund ist i beachten Sie, dass wir hinzufügen müssen:

"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" 
    } 
} 
Verwandte Themen