Ruft Geräte-Token für Push-Benachrichtigungen ab, nachdem App gelöscht wurde

8

Wenn Sie eine App zum ersten Mal installieren und sich für Push-Benachrichtigungen registrieren möchten, werden Sie von der App gefragt, ob Sie Benachrichtigungen erhalten möchten oder nicht. Dies wird in den Einstellungen dauerhaft gespeichert, auch nach dem Löschen der App.

Um das Token zu speichern, machen wir Folgendes:

%Vor%

Aber das Problem ist, NSUserDefaults werden gelöscht, wenn die App vom Gerät entfernt wird, aber die Push-Einstellungen sind nicht. Also wird es nicht nochmal fragen, also rufe die Delegate-Methode nicht nochmal auf, somit habe ich das Token nicht mehr, aber Push ist noch aktiviert.

Gibt es eine Chance, das Token im beschriebenen Szenario zurückzubekommen?

    
Sebastian Wramba 07.06.2013, 10:44
quelle

2 Antworten

23

Von Push Notification Programming Guide

  

Eine Anwendung sollte sich jedes Mal registrieren, wenn sie gestartet wird   das aktuelle Token bereitstellen. Es ruft die   registerForRemoteNotificationTypes: Methode zum Starten des   Registrierungsprozess.

     

Indem Sie das Geräte-Token anfordern und es an den Provider übergeben   Wenn Ihre Anwendung startet, helfen Sie, dass der Anbieter   hat das aktuelle Token für das Gerät. Wenn ein Benutzer eine Sicherung auf einem wiederherstellt   Gerät oder Computer, für den das Backup erstellt wurde   (Zum Beispiel migriert der Benutzer Daten auf ein neues Gerät oder einen neuen Computer), er   oder sie muss die Anwendung mindestens einmal starten, damit sie empfangen wird   Benachrichtigungen erneut. Wenn der Benutzer Sicherungsdaten auf einem neuen Gerät wiederherstellt   oder Computer oder installiert das Betriebssystem, das Geräte-Token, neu   Änderungen. Darüber hinaus, Cache nie ein Gerät Token und geben Sie das zu Ihrem   Anbieter; Holen Sie das Token immer dann aus dem System, wenn Sie es benötigen.   Wenn sich Ihre Anwendung bereits registriert hat, rufen Sie an   registerForRemoteNotificationTypes: Ergebnisse im Betriebssystem   Übergeben des Geräte-Tokens sofort an den Delegierten, ohne dass es dazu kommt   zusätzlicher Overhead.

Um Ihre Frage zu beantworten: Rufen Sie registerForRemoteNotificationTypes: bei jedem Start auf und verwenden Sie das neueste Token.

    
Mar0ux 07.06.2013, 11:14
quelle
3

Rufen Sie registerForRemoteNotificationTypes bei jedem Start Ihrer Anwendung auf, damit Ihre didRegisterForRemoteNotificationsWithDeviceToken -Methode einen Anruf erhält und Sie Ihr Geräte-Token jedes Mal von APNS erhalten. Und Geräte-Token für Ihre Anwendung sind bei jedem Start gleich.

    
Vishal's p 07.06.2013 12:22
quelle