Frage

Ich entwickle eine App mit Push-Benachrichtigungen. Um alle Möglichkeiten der Interaktion mit dem Benutzer zu überprüfen, würde Ich mag meinen App testen, wenn ein Benutzer Push-Benachrichtigungen für meine App beim ersten Start aktiviert haben abnimmt.

Der Dialog (von registerForRemoteNotificationTypes initiiert), erscheint jedoch nur einmal pro App. Wie setze ich die Erinnerung an meine App iPhone OS. Löschen Sie die App und Neuinstallation nicht hilft.

War es hilfreich?

Lösung

Technical Note TN2265: Fehlerbehebung Push Notifications

  

Das erste Mal, wenn ein Push-fähiger App   Register für Push-Benachrichtigungen, iOS   wenn sie fragt den Benutzer erhalten möchten   Benachrichtigungen für diese App. Sobald die   Benutzer hat auf diese Meldung reagiert hat es   nicht dargestellt wieder, es sei denn das Gerät   wieder hergestellt ist oder die App wurde   mindestens einen Tag deinstalliert für.

     

Wenn Sie ein erstmaligen simulieren wollen   laufen Ihrer App können Sie die App verlassen   für einen Tag deinstalliert. können Sie erreichen   letztere ohne tatsächlich wartet ein   Tag durch den Systemtakt einstellen   weiterleiten einen Tag oder mehr, drehen die   Gerät komplett ab, dann drehen   das Gerät wieder an.

Update: Wie unten in den Kommentaren erwähnt, diese Lösung funktioniert nicht, da iOS 5.1. Ich möchte Sie ermutigen einen Fehler mit Apple Filing, damit sie ihre Dokumentation aktualisieren. Die aktuelle Lösung scheint die Geräte Inhalte und Einstellungen werden zurückgesetzt wird.

Update: Die Tech-Note wird mit neuen Schritten aktualisiert worden, dass die Arbeit richtig ab iOS 7

.
  
      
  1. Löschen Sie Ihre App aus dem Gerät.
  2.   
  3. Schalten Sie das Gerät komplett ausschalten und wieder einschalten.
  4.   
  5. Gehen Sie zu Einstellungen> Allgemein> Datum & Uhrzeit und stellen Sie das Datum vor einem Tag oder mehr.
  6.   
  7. Schalten Sie das Gerät wieder vollständig aus und dann wieder an.
  8.   

UPDATE ab iOS 9

Sie einfach löschen und die App Neuinstallation wird die Meldung des Status notDetermined zurückgesetzt (dh Aufforderungen werden angezeigt).

Durch die Antwort von Gomfucius unter: https://stackoverflow.com/a/33247900/704803

Andere Tipps

Ein weiteres nur den Zweck zu testen Lösung ist einfach durch Ihre Bündel-ID zu ändern. vergessen Sie es einfach nicht wieder zu ändern, wenn Sie fertig sind!

Auf iOS 9.0.2, erhalte ich die „registrieren Push-Benachrichtigung Alarm“ jedes Mal, wenn ich die App löschen und neu installieren. Dies gilt für beide Appstore Produktion Downloads und Ad-hoc-Modus.

UPDATE: Es wird bestätigt, das für iOS arbeitet 9.x

Wie bereits erwähnt den Ansatz zum Zurücksetzen des Benachrichtigungsstatus für eine App auf einem Gerät ist für iOS5 eine neuere geändert.

Dies funktioniert für mich auf iOS6:

  • Entfernen Sie die App aus dem Gerät
  • Stellen Sie das Gerät Datetime 2 Tage oder mehr vor
  • Starten Sie das Gerät
  • Stellen Sie das Gerät Datetime 2 Tage oder mehr vor
  • Starten Sie das Gerät
  • Installieren und die App erneut ausführen

Dies wird jedoch nur macht die anfängliche Aufforderung erscheint wieder -. Es wird kein anderes Push-Zustand in Verbindung stehendes Material entfernen

Der plist: /private/var/mobile/Library/RemoteNotification/Clients.plist

... enthält die registrierten Kunden für Push-Benachrichtigungen. Entfernen Eintrag Ihrer App bewirkt, dass die Eingabeaufforderung wieder angezeigt

Doing es scheint programmatisch Arbeit für mich jedes Mal. Ich habe einen Build mit der folgenden Zeile unkommentiert:

 [[UIApplication sharedApplication] unregisterForRemoteNotifications];

ich es laufen jedes Mal, wenn ich von PN zu austragen wollen. Sie könnten die App explizit aus der recents Liste zu beenden haben und mit dem Notification Center in App Einstellungen spielen, um es richtig zu machen.

Auch die UI-Eingabeaufforderung den Benutzer auffordert, für PN registrieren kann nicht auf. Nicht sicher, ob hat in einem der letzten iOS-Versionen deaktiviert wurde.

Wie ianolito sagte, sollte die Datumseinstellung arbeiten:

  

Sie können die letztere erreichen, ohne tatsächlich einen Tag zu warten, um den Systemtakt vorwärts täglich Einstellung oder mehr, das Gerät komplett ausschalten drehen, dann auf das Gerät wieder einschalten.

Ich habe bemerkt, auf meinem Gerät (iPhone 4, iOS 6.1.2) die Systemuhr einen Tag nach vorne oder sogar ein paar Tage Einstellung hat nicht funktioniert für mich. Also habe ich das Datum nach vorne gesetzt Monat und dann hat es funktioniert und meine Anwendung zeigte die Benachrichtigungen prompt wieder.

Hope, das hilft für jedermann, kann es eine Art Kopf schmerzte sein!

ich mit micmdk zustimmen .. Ich hatte eine Entwicklungsumgebung Setup mit Push Notifications und brauchte eine Möglichkeit, mein Handy aussehen wie eine anfängliche installieren zurückgesetzt ... und nur diese genauen Schritte für mich gearbeitet ... erfordert zwei Neustarts von Device:

Von APPLE TECH DOC:

Zurücksetzen des Push Notifications Berechtigungen Alarm auf iOS Das erste Mal, wenn ein Push-fähige App-Register für Push-Benachrichtigungen, fragt iOS den Benutzer, wenn sie dies wünschen Benachrichtigungen für diese App zu erhalten. Sobald der Benutzer auf diese Warnung reagiert hat es nicht wieder dargestellt wird, wenn das Gerät wieder hergestellt ist oder die App für mindestens einen Tag wurde deinstalliert.

Wenn Sie ein erstes Mal ausführte Ihre Anwendung simulieren mögen, können Sie die App für einen Tag deinstalliert verlassen. Sie können die letztere erreichen, ohne tatsächlich einen Tag zu warten, mit den folgenden Schritten:

  1. Löschen Sie Ihre App aus dem Gerät.

  2. Schalten Sie das Gerät komplett ausschalten und wieder einschalten.

  3. Gehen Sie zu Einstellungen> Allgemein> Datum & Uhrzeit und stellen Sie das Datum vor einem Tag oder mehr.

  4. Schalten Sie das Gerät wieder vollständig aus und dann wieder an.

Ich habe darüber in der Vergangenheit überlegte und kam zu dem Schluss, dass es nicht wirklich ein gültiger Testfall für meinen Code war. Ich glaube nicht, Anwendungscode, den Unterschied zwischen jemandem rückläufigen Meldungen zum ersten Mal tatsächlich sagen kann, oder später von den iPhone-Benachrichtigungseinstellungen zu deaktivieren. Es ist wahr, dass der Benutzer Erfahrung ist anders, aber das ist im Inneren der Aufruf registerForRemoteNotificationTypes versteckt.

unregisterForRemoteNotifications hat Aufruf nicht die Anwendung vollständig von den Benachrichtigungseinstellungen entfernen - wenn es um den Inhalt der Einstellungen für diese Anwendung nicht entfernt. So wird dies noch nicht den Dialog führen, um das nächste Mal, wenn der App läuft ein zweites Mal den Benutzer präsentiert werden (zumindest nicht auf v3.1.3, dass ich derzeit mit bin Prüfung). Aber wie ich über euch sagen wahrscheinlich nicht beunruhigend sein darüber.

Der gleiche technische Hinweis, wie in der akzeptierten Antwort verwies auf ( TN2265 - Fehlersuche. Push Notifications) da für iOS 5 mit einer Lösung aktualisiert wurde und über

Kurz gesagt:. Ein Backup erstellen und daraus jedes Mal wiederherstellen

  

Auf iOS 5 und später, stellen Sie den Push-Benachrichtigungen Berechtigungen Alarm durch das Gerät von einer Sicherung wiederherstellen (r. 11450187). Hier sind die Schritte, um dies effizient zu tun:

     
      
  1. Verwenden Sie die Xcode Organizer Ihre App auf dem Gerät zu installieren. Der Schlüssel ist die App zum ersten Mal zu installieren, ohne es ausgeführt wird.
  2.   
  3. Verwenden Sie iTunes, um das Gerät zu sichern.
  4.   
  5. Starten Sie die App. Der Push-Benachrichtigungen Berechtigungen Alarm vorgestellt werden.
  6.   
  7. Wenn Sie die Push-Benachrichtigungen Berechtigungen Alarm zurücksetzen, wiederherstellen das Gerät von der Sicherung, die Sie im ersten Schritt erstellt haben.
  8.   

Das Apple Tech Note beschrieben auch Sie das Gerät wiederherstellen können die Push Notification Dialog zurückgesetzt werden.

Es heißt nicht, dass Sie auch die Möglichkeit nutzen können. „Allgemein -> Zurücksetzen -> Erase All Inhalte und Einstellungen“ auf dem Gerät selbst (iOS 5.x)

Neben der Antwort von ianolito.

Hat das gleiche Problem mit einer App ich vor einem Jahr heruntergeladen und verweigern Push-Benachrichtigung zunächst. Jetzt Push-Benachrichtigungen wollen zurück, arbeitete diese Schritte für mich auf iOS 7 Beta. Nicht sicher, welcher Punkt (e) ausgelöst es genau.

  • Schließen und die App löschen.
  • Gehen Sie zu Ihren iCloud-Einstellungen und löschen Sie die App aus dem iCloud. Tun Sie dies auf allen anderen Geräten, bei denen Sie iCloud-Backup für Anwendungen aktiviert. Nach dem Deaktivieren und Löschen machen eine neue Sicherungskopie. Die App sollte nicht mehr unter den Sicherungen aufgelistet. (Dies ist vielleicht, warum die Technical Note von Apple beschrieben durch ianolito aufgehört zu arbeiten in iOS 5, iCloud, da in iOS eingeführt wurde 5 und viele haben iCloud-Backup für Anwendungen aktiviert.)
  • Gehen Sie zu Ihren Zeiteinstellungen und die Zeit mehr als 1 Monat vor eingestellt.
  • Schalten Sie das iPhone aus (ohne Reset).
  • Warten Sie eine Minute, schalten Sie es wieder ein und die App erneut herunterladen.
  • Starten Sie die App und ich den Dialog wieder dargestellt.
  • App-Backup aktiviert wieder, da es immer noch deaktiviert ist. Korrigieren Sie die Zeit.

Gott sei Dank ich nicht auf „Erase All Content und Einstellungen für“ hatte. Vielleicht wird es jemand helfen.

Nach Stunden des Suchens, und kein Glück mit den oben genannten Vorschlägen, diese zu einem Charme gearbeitet wie für 3.x +

override func viewDidLoad() {
        super.viewDidLoad()


            requestAuthorization()

}

func requestAuthorization() {

        if #available(iOS 10.0, *) {

            UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
                print("Access granted: \(granted.description)")
            }

        } else {
            // Fallback on earlier versions
        }

    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top