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?
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.
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.
Tags und Links objective-c ios apple-push-notifications