Wir sind relativ neu bei iOS-Push-Benachrichtigungen und wie immer bei Apple beeindruckt mich die Eleganz der Lösung, aber auch ein wenig verärgert über das scheinbar undurchsichtige Management der Funktionen hinter den Kulissen Verhalten.
Meine Frage ist folgende: Nach erfolgreichem Erhalt von ca. 10 einzelne stumme Push-Benachrichtigungen mit einer Rate von einer pro Stunde wurden nicht mehr an unsere Test-App geliefert, bis sie schließlich von unserem Testbenutzer geöffnet wurde. Aus diesem Grund scheint es, dass iOS keine stillen Push-Benachrichtigungen mehr sendet, wenn festgestellt wird, dass eine App nicht verwendet wird. Ist das erwartetes Verhalten? Kennt jemand grobe Angaben über die von Apple verwendete Heuristik?
Details der Tests für Interessierte
Zu Ihrer Information: Unser Testaufbau ist wie folgt:
application:didReceiveRemoteNotification:fetchCompletionHandler
-Delegatenmethode erstellt) Ergebnisse:
Das Benachrichtigungsformat (manuell kopiert, eventuelle Fehler entschuldigen):
%Vor%Ich habe die Push-Funktion meiner App vor einigen Monaten getestet, einige meiner Erfahrungen hier:
- Apple Push Notification kümmert sich nicht darum, ob Ihre App verwendet wird oder nicht.
- APNS ist nicht 100% zuverlässig, der einflussreichste Faktor ist die Netzwerkqualität (Ihr Server für den APN-Server, der APN für Ihr Gerät).
- Ich habe 10.000 Benachrichtigungen auf ein iphone4s in 3 Minuten geschoben, Gerät erhielt mehr als 95% Benachrichtigungen.So, 10 separate still Push-Benachrichtigungen mit einer Rate von einer pro Stunde haben keinen Druck.
Besprechen Sie jetzt Ihre Frage:
Erstens: sollte erkennen, dass der erste Empfänger von Benachrichtigungen System ist, nicht Ihre App.
Wenn Ihre App nicht im Vordergrund ist, wird die Anwendung der Anwendung: didReceiveRemoteNotification: fetchCompletionHandler wird nie aufgerufen, bis Ihre App wieder in den Vordergrund gelangt. Ihre Aktion "schreibt ein Protokoll und führt eine einfache Anfrage an unseren Back-End-Server aus" ist also nicht geeignet, "das aufgetretene Ereignis zu protokollieren".
Ich denke, es gibt keinen guten Weg, "alle aufgetretenen Ereignisse zu protokollieren", es sei denn, Ihre App befindet sich immer im Vordergrund.
BTW: Wenn Sie Push testen, wenn das Gerät die Benachrichtigung nicht schnell empfängt, können Sie das Netzwerk des Geräts ändern (oder das Netzwerk ausschalten), manchmal wird die Benachrichtigung bald kommen.
Ich kann mir drei Ursachen für das Verhalten vorstellen, das Sie sehen:
Dies sind die einzigen Fälle, in denen Ihre App nicht mehr gestartet wird, um die Hintergrundbenachrichtigung zu erhalten. Jetzt müssen Sie debuggen, welche dieser gilt.
Tags und Links push-notification iphone ios apple-push-notifications notifications