2013-08-06 2 views
8

Diese Frage ist wahrscheinlich das gleiche wie Duplicate Apple APNS push notifications?, aber da das eine Antwort nicht erhalten, und ich habe ein paar mehr Informationen, werde ich versuchen, es erneut zu fragen.Doppelte Push-Benachrichtigungen auf iOS

Schritte, das Problem zu reproduzieren:

  • Set Notification Center Benachrichtigungen als Warnungen angezeigt werden, wird dies das Problem deutlicher machen.
  • Stellen Sie sicher, dass die App nicht im Vordergrund ausgeführt wird.
  • Senden Sie drei identische Push-Benachrichtigungen in schneller Folge.
  • Warten Sie, bis die Nachrichten am Telefon ankommen. Sie müssen die Warnung jetzt dreimal abbrechen.
  • Senden Sie jetzt 1 weitere Benachrichtigung, die nicht identisch mit den vorherigen ist.
  • Sie erhalten jetzt diese letzte Benachrichtigung, aber Sie erhalten auch eine der vorherigen Benachrichtigungen noch einmal angezeigt. Das ist das Problem.
  • Wenn Sie weiterhin einzelne Benachrichtigungen senden, wird eines der ersten 3 weiterhin angezeigt, wenn dies nicht der Fall ist.

Hier ist ein Video, das die folgenden Schritte aus, die eindeutig das Problem zeigt:

http://youtu.be/TSqt8S4FY6w

Wir haben ebenso wie Remy Gale in der verknüpften Frage tat oben dafür gesorgt, dass unsere Mitteilungen in gesendet werden der richtige Weg, und nur einmal pro Benachrichtigung. Das haben wir auch mit den Sandbox-Apns und den Production-Apns getestet, die sich beide genau gleich verhalten.

Das Problem verschwindet, wenn das App-Badge auf 0 gesetzt ist, wodurch wiederum alle Benachrichtigungen aus dem Benachrichtigungscenter entfernt werden. Das manuelle Entfernen der Benachrichtigungen hilft nicht.

UIApplication *app = [UIApplication sharedApplication]; 
app.applicationIconBadgeNumber = 0; 

Aber das ist keine Lösung.

Das Problem tritt nicht auf, wenn alle Benachrichtigungen eindeutigen Text enthalten. Wenn Sie dem Alert-Text eine GUID hinzufügen, wird das Problem verschwinden. Das Hinzufügen zu den apns-Nutzdaten als benutzerdefinierte Eigenschaft oder als lokales Argument wird jedoch nicht helfen, daher ist dies auch keine Lösung.

Dies wird wahrscheinlich in einer Produktionsumgebung mit einer Live-App selten passieren, aber es kann passieren, und wenn es passiert, ist es wirklich ärgerlich für die Benutzer!

Weiß jemand, warum das passiert? Hat jemand eine praktikable Lösung?

+0

Da die Push-Notifikationen vom Betriebssystem gehandhabt werden, gibt es nicht viel, was Sie tun können, um das zu lösen, denke ich.Ich würde dies Apple als Fehler melden und sie mit einer Testanwendung und deinem Youtube-Film versorgen. – rckoenes

Antwort

7

Diese Google Group für Google Mail hat einen Eintrag von einem Benutzer, der den Fehler ein wenig untersucht hat und eine mögliche Problemumgehung enthält. Laut dem Eintrag ist der Fehler nicht in iOS 5, sondern wurde mit iOS 6 eingeführt.

Die Problemumgehung ist einfach eine Zufallszahl von Zero-width non-joiner an den Titel anfügen, um die Eindeutigkeit zu gewährleisten.

+0

Ich denke, das wird tun müssen – TheQ

0

Dies könnte ein Problem mit dem Zeitstempel sein, den der Server auswählt, während er eine Push-Benachrichtigung an APNs sendet. Wählen Sie nur den neuesten Zeitstempel aus.