2016-05-04 10 views
2

Wenn die App versucht, sich für die Push-Benachrichtigung zu registrieren, indem sie [[UIApplication sharedApplication] registerForRemoteNotifications] aufruft, wird ein Popup nach der Erlaubnis des Benutzers gefragt. Gleichzeitig möchte ich beim ersten Start der App eine weitere Benachrichtigungsbox eingeben, die Benutzereingaben verlangt (z. B. empfehle ich ihnen, eine Kaufwiederherstellung durchzuführen, wenn sie zuvor etwas gekauft haben).Ermitteln, ob der Benutzer die Push-Benachrichtigung beendet hat (mehrere Warnmeldungen gleichzeitig anzeigen)

Zur Zeit zeige ich die Warnung nach der Landung auf Root-View-Controller, d. H. In viewDidAppear. Es kommt jedoch vor, dass diese Warnung sich mit dem Popup-Fenster überschneidet und die meiste Zeit um die Erlaubnis zur Push-Benachrichtigung bittet, was für mich schlecht aussieht.

Gibt es trotzdem bemerkt, nachdem Benutzer das Popup für Push-Benachrichtigung abgewiesen hat, oder gibt es einen besseren Weg, um die Situation anders als nicht für Push-Benachrichtigung registrieren, bevor meine Alarmbox wurde entlassen?

Danke!

+0

Sie wissen, dass die Benachrichtigungswarnung angezeigt wird, wenn die aktuellen Berechtigungen unbestimmt sind. Sie wissen, dass es abgewiesen wird, wenn Sie den entsprechenden Callback/Delegate-Aufruf erhalten. Handle entsprechend. – Avi

+0

Ich überprüft über die Callbacks wie 'didRegisterForRemoteNotificationsWithDeviceToken' und einige andere Quellen, es sieht so aus, dass diese Callbacks (einschließlich der für die Registrierung fehlgeschlagen) aufgerufen werden, auch wenn der Benutzer keine Wahl getroffen hat. Was die aktuelle Erlaubnis betrifft, gibt es anscheinend keinen anderen Weg, um benachrichtigt zu werden, wenn es geändert wird, außer es regelmäßig zu überprüfen. – alanlo

+0

Warum registrieren Sie sich nicht für Remote-Benachrichtigungen, nachdem die Alarmbox-Eingabeaufforderung nicht mehr angezeigt wird? – inankupeli

Antwort

1

Wenn die Eingabeaufforderung für native Benachrichtigungen angezeigt wird, wird Ihre App inaktiv und die Datei UIApplicationWillResignActiveNotification wird ausgelöst. Ihre App bleibt im inaktiven Status, bis der Benutzer auf die Push-Eingabe mit "Ja" oder "Nein" antwortet.

Registrieren Sie sich für die UIApplicationDidBecomeActiveNotification also, wenn das ausgelöst wird, wissen Sie, die native Push-Warnung wurde abgewiesen. Hier ein Beispiel in Swift 3:

NSNotificationCenter.default.addObserver(self, 
    selector: #selector(MyClass.showCustomModal), 
    name: UIApplicationDidBecomeActiveNotification, 
    object: nil) 
Verwandte Themen