Ich entwickle eine App, die sich um Push-Benachrichtigungen kümmert. Die App fordert Benachrichtigungsberechtigungen nur an, wenn der Benutzer einen bestimmten Punkt des Registrierungsprozesses erreicht. Ich habe bereits Folgendes geschafft:
NSUserDefaults
-Variable, die angibt, ob es erforderlich ist, sich beim Start für Push zu registrieren oder nicht (standardmäßig: nicht) -registerForRemoteNotificationTypes:
auf iOS 7 und -registerUserNotificationSettings:
auf iOS 8 Dies funktioniert, wenn der Benutzer Push-Benachrichtigungen nicht bereits aktiviert und später in den Einstellungen deaktiviert hat. In diesem Fall versuche ich Push beim Start zu registrieren, was weder -application:didRegisterForRemoteNotificationsWithDeviceToken
noch -application:didFailToRegisterForRemoteNotificationsWithError
aufruft.
Zusätzliche Informationen, dass das -isRegisteredForRemoteNotifications
von iOS 8 auch YES
zurückgibt. (Ich habe nicht getestet, aber angenommen, dass -enabledNotificationTypes
bis iOS 7 funktioniert.)
Wie kann ich dieses Szenario erkennen und dem Benutzer einen Anforderer vorstellen, der ihn auffordert, Benachrichtigungen in den Einstellungen zu aktivieren?
Gibt einen booleschen Wert zurück, der angibt, ob die App gerade registriert ist für Remote-Benachrichtigungen.
Deklaration SWIFT func isRegisteredForRemoteNotifications () - & gt; Bool ZIEL C - (BOOL) isRegisteredForRemoteNotifications Rückgabewert YES, wenn die App für Remote-Benachrichtigungen registriert ist und ihr Geräte-Token empfangen hat oder NEIN, wenn die Registrierung nicht erfolgt ist, fehlgeschlagen ist oder abgelehnt wurde vom Benutzer.
Diskussion Diese Methode spiegelt nur den erfolgreichen Abschluss der Fernregistrierungsprozess, der beginnt, wenn Sie den registerForRemoteNotifications-Methode. Diese Methode spiegelt nicht wider ob Push-Benachrichtigungen aufgrund der Konnektivität tatsächlich verfügbar sind Probleme. Der von dieser Methode zurückgegebene Wert berücksichtigt den Wert Benutzereinstellungen für den Empfang von Push-Benachrichtigungen.
Verfügbarkeit Verfügbar in iOS 8.0 und höher.
Ich würde einen Fehlerbericht bei Apple einreichen.
Tags und Links push-notification objective-c ios apple-push-notifications ios8