Ich verwende parse.com als meinen APN-Provider für eine Test-App, die ich gerade entwickle. Ich habe bestätigt, dass Push-Benachrichtigungen funktionieren, da ich in der Lage war, Warnungen zu erhalten, wenn die App im Vordergrund ist. Außerdem habe ich den Wert remote-notification
für den Schlüssel UIBackgroundModes
, der in meinem plist angegeben ist.
In meiner App möchte ich die aktuellen Standortdaten eines Benutzers zurück an meine app-spezifische parse.com-Datenbank senden, wenn eine Push-Benachrichtigung empfangen wird. Ich interessiere mich nicht wirklich für die Benachrichtigungs-Nutzlast selbst, da die Benachrichtigung nur ein Mittel ist, um ein kleines Stück Information zu erhalten. Die App sammelt ständig Daten im Hintergrund und speichert sie in einem persistenten NSDictionary
.
Ich habe den Sendecode für den Standort in die Methode application:didReceiveRemoteNotification:
eingefügt. Wenn meine App im Vordergrund ist, wenn ich eine Benachrichtigung erhalte, wird die Methode aufgerufen. Wenn sich meine App im Hintergrund befindet, wird die Methode nicht aufgerufen.
- Mache ich etwas falsch?
- Ist es sogar möglich, eine API-Anfrage in
application:didReceiveRemoteNotification:
auszuführen, wenn sich die App im Hintergrund befindet und der Benutzer nicht mit der Benachrichtigung interagiert hat? **
BEARBEITEN: Das Problem bleibt bestehen, auch wenn ich application:didReceiveRemoteNotification:fetchCompletionHandler:
verwende.
Hinweis: Mein NSDictionary mit den Standortdaten ist nicht leer. Außerdem versuche ich nicht, irgendwelche UI-Manipulationen im Hintergrund auszuführen - ich versuche nur, eine API-Anfrage auszuführen.