Apple Push Notification im Hintergrund Problem
Ich bin mit parse.com als meine APNs Anbieter für eine test-app, die ich Baue. Ich habe bestätigt, dass die push-Benachrichtigungen arbeiten, wie ich in der Lage, erfolgreich erhalten Benachrichtigungen, wenn die app im Vordergrund. Auch habe ich die remote-notification
Wert für die UIBackgroundModes
angegebenen Schlüssel in meine plist.
In meiner app, ich will senden ein Benutzer dem aktuellen Standort-Daten zurück zu meiner app-spezifische parse.com Datenbank, wenn eine push notification empfangen werden. Ich weiß nicht wirklich Pflege über die Nutzdaten der Benachrichtigung selbst, denn die Meldung ist nur ein Mittel, um immer ein kleines Stück von Informationen. Die app sammelt kontinuierlich Daten im hintergrund und speichert diese in einer persistenten NSDictionary
.
Habe ich den Speicherort senden von code in der application:didReceiveRemoteNotification:
Methode. Wenn meine app in den Vordergrund, wenn ich eine Benachrichtigung erhalten, wird die Methode aufgerufen wird. Wenn meine app in den hintergrund, die Methode nicht aufgerufen.
- Mache ich etwas falsch?
- Ist es sogar möglich, führen Sie eine API-Anforderung in
application:didReceiveRemoteNotification:
wenn die app im hintergrund und der Benutzer nicht interagiert mit der Meldung?**
EDIT: Das problem weiterhin besteht, auch wenn ich application:didReceiveRemoteNotification:fetchCompletionHandler:
.
Hinweis: Meine NSDictionary voll von Standort-Daten ist nicht leer. Ich bin mir auch nicht versuchen zu tun, jede UI-manipulation im hintergrund - nur versuchen, führen Sie eine API-Anfrage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie Folgendes:
content-available
flag eingeschaltet, in der AppDelegate, war sich aber nicht drängen, dass die Flagge in meinem JSON-APNs. Vielen Dank, Alex! Das behebt das problem.Den Dokumentation für UIApplicationDelegate -Anwendung:didReceiveRemoteNotification ist ziemlich klar, auf diese Methode:
Müssen Sie behandeln Benachrichtigungen bei beiden Methoden werden in der Lage zu reagieren, wenn die app im hintergrund und Vordergrund.
not running
als völlig stillgelegt, nichtinactive
oderbackground
- Modus. Ich werde versuchen, es kurz und markieren Sie Ihre Antwort richtig, wenn ich es arbeiten.application:didFinishLaunchingWithOptions:
undapplication:didReceiveRemoteNotification:
. Wenn die Anwendung im hintergrund (z.B., schob ich die home-Taste), werden keine Daten gesendet, es sei denn, ich die Interaktion mit der Benachrichtigung. Wenn ich die Interaktion mit der Benachrichtigung durch anklicken derapplication:didReceiveRemoteNotification:
Methode eingegeben wird. Was mache ich falsch? Muss ich grundlegend missverstehen, wie hintergrund-Benachrichtigungen funktionieren sollte?suspended
Staat, und nicht diebackground
Zustand. Ich glaube, dass die das Problem verursachen können.application:didReceiveRemoteNotification:fetchCompletionHandler:
Methode, die Vorrang vor den anderen Delegierten Methodeapplication:didReceiveRemoteNotification:
. Noch, keine Würfel.können Sie versuchen, verwenden Sie diese anstelle von
Methode, da müssen Sie Holen Ihre push-in hintergrund-Modus, so würde dies auch funktioniert, wenn app ist im hintergrund-Modus. Möglicherweise müssen Sie jedoch hinzufügen, benutzerdefinierte Benachrichtigung oder uialertview-Objekt, wenn app ist im Vordergrund, um Ihre Nachricht. Hoffe, es hilft und es ist nicht zu spät.
Alex L s Antwort fast für mich gearbeitet.
Nur sicherstellen, dass der Wert von
content-available
1 (Anzahl), keine string - "1":badge
parameter ist optional.(Mit Parse Server für APNs)