2016-10-24 1 views
0

gemacht wurde Ich möchte feststellen, ob ein Benutzer jemals eine Warnung erhalten hat, die registerUserNotificationSettings anfordert.Ermitteln, ob ein Aufruf von `registerUserNotificationSettings` jemals in Swift

Als Beispiel können Sie beim Zugriff auf Fotos feststellen, ob eine Anforderung für den Zugriff auf Fotos und die erteilte Berechtigung PHPhotoLibrary.authorizationStatus() vorliegt. Er gibt den Status .Authorized, .Denied, .Restricted, .NotDetermined zurück. Wenn bis heute keine Anfragen eingegangen sind, wird .NotDetermined zurückgegeben.

Ebenso, wenn Benachrichtigungen zu registrieren und die Erlaubnis zu tun bekommt so von dem Benutzer zum ersten Mal UIApplication.sharedApplication().registerUserNotificationSettings ist es möglich, Arten von Benachrichtigungen registriert, um zu bestimmen, .Badge, .Alert, .Sound, .None. (Hinweis: .None bedeuten beide gab es keine Anfrage oder, dass es eine Anforderung war, aber der Benutzer hat keine Benachrichtigungen gewählt.)

Frage:

Aber ist gibt es eine Möglichkeit festzustellen, ob die registerUserNotificationSettingsjemals zuvor aufgerufen wurde? , d. H. Gibt es ein Äquivalent zu Fotos .NotDetermined?

Antwort

1

Wenn Sie registerUserNotificationSettings nennen, die UIApplicationDelegate Methode:

func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) 

werden zu lassen Sie wissen, das Ergebnis aufgerufen werden. Verwenden Sie diese Methode, um relevante Statusinformationen zu speichern, damit Sie beim nächsten Start der App wissen, ob sie zuvor aufgerufen wurde oder nicht.

+0

Danke @rmaddy – user4806509

+0

In einem verwandten Hinweis, was ist, wenn die relevanten Statusinformationen nie zuvor gespeichert wurde. Was wäre der Ansatz, den Staat zu bestimmen? – user4806509

+1

Wenn keine relevanten Statusinformationen gespeichert sind, wissen Sie, dass 'didRegister' nie aufgerufen wurde, was bedeutet, dass' registerUserNotificationSettings' nie aufgerufen wurde, was bedeutet, dass Sie jetzt wissen, dass Sie es aufrufen müssen. – rmaddy

Verwandte Themen