2015-02-13 10 views
5

Ich möchte im Grunde mehrere Push-Benachrichtigungen in der gleichen Anwendung in der Benachrichtigungsleiste in iOS sichtbar machen.Apple mehrere Push-Benachrichtigungen nicht in Benachrichtigungen Tray

Dieses Szenario funktioniert, wenn meine Daten aktiviert sind, während die Push-Benachrichtigung über APNS ausgelöst wird, aber nur die neueste, wenn ich offline bin und nach einer Weile wieder zurückkomme. Diese Funktionalität wird von APNS documentaion bestätigt.

Dies ist jedoch, was in WhatsApp gearbeitet:

  1. Turned Datenverbindung AUS
  2. Sent einige Nachrichten zu WhatsApp
  3. Turned Datenverbindung
  4. mehr Push-Benachrichtigungen Sah in Apples Mitteilung Fach erhalten

Wie funktioniert dieses Szenario? Kann ich APNS dafür benutzen? Wenn ja, wie?

Siehe this sample image von mehreren Push-Benachrichtigungen in WeChat.

Antwort

5

Wie Sie schrieb in Ihrer Frage, ist dies in der Apple-Docs erwähnt:

Wenn Sie mehrere Mitteilungen an dem gleichen Gerät oder Computer innerhalb kurzer Zeit senden, wird der Push-Service senden nur der letzte.

Link

Die nur Szenario das funktionieren wird, was Sie beschreiben, ist, wenn Ihr WhatsApp im Hintergrund geöffnet war, während jene push notifications bekommen. Auf diese Weise wird whatsApp sie als local notifications behandeln und alle von ihnen in der Benachrichtigungszentrale präsentieren. Wenn whatsApp geschlossen wurde, erhalten Sie nur die letzte Benachrichtigung wie jede andere App.

Sie können dies einfach testen:

  1. WhatsApp beenden und schalten Sie Airplane mode.
  2. Senden Sie Ihrem Gerät 5 Nachrichten von 1 bis 5.
  3. Schalten Sie Airplane mode aus und sperren Sie Ihr Gerät.
  4. In Ihrer notifications center wird nur eine Nachricht angezeigt (die letzte, die Sie auch als "5" bezeichnet haben).

Dies ist, wie WhatsApp macht es:

Während WhatsApp im Hintergrund ist eine einzige Push-Benachrichtigung empfangen wird (die letzten der Benutzer gesendet, „5“ in unserem Beispiel). Diese Nachricht wird dem Benutzer nicht angezeigt.

whatsApp empfängt es in der Methode application:didReceiveRemoteNotification:fetchCompletionHandler: und überprüft gegen ihre Server, wenn es Benachrichtigungen vor "5" gibt, die der Benutzer nicht erhalten hat. Wenn das der Fall ist, werden sie diese Daten von ihren Servern abrufen und sie dem Benutzer unter Verwendung von local notifications präsentieren, was im Grunde nur eine Möglichkeit darstellt, Daten darzustellen und überhaupt nicht mit APNS in Beziehung zu stehen.

+0

: Ich habe dies auf WhtsApp versucht, indem Sie die Datenverbindung aus und nach einer Weile wieder online (Während dieser Zeit ist es egal, wenn Whtsapp im Hintergrund war), aber es erhielt alle Push-Benachrichtigungen. Es möglicherweise nicht Apns aber dann wie sie es erreichen, das muss ich wissen. – Geek

+0

Ich habe die Antwort bearbeitet, um die Dinge ein wenig klarer zu machen – Segev

+0

Anwendung: didReceiveRemoteNotification: fetchCompletionHandler: Diese Methode funktioniert nicht im Endzustand so wie könnten wir möglicherweise tun, wenn wir letzte Nachricht dann anfordern und letzte Nachrichten push bekommen nochmal. –

-1

Wie beschrieben, können Sie diese Push-Benachrichtigungen nicht steuern.

Allerdings können Sie wissen, dass von iOS7 ein neuer Hintergrund Ausführungsmodus (Remote-Benachrichtigung), um die App ermöglicht durch das System zu wecken, wenn ein Stoß empfangen wird, so dass Sie einige Daten verarbeiten, dann schlafen gehen zurück ...

Dies ist wahrscheinlich der Trick: Verwenden Sie diesen Weg, um die Push-Benachrichtigungen (stillschweigend) zu erhalten und dann Ihre eigene lokale Benachrichtigung auslösen, wie @Segev sagte. See the UIBackgroundModes here.

Verwandte Themen