Die Möglichkeit, sich für iOS 8 zu registrieren und weiterhin ältere Versionen zu unterstützen
UIApplication *application = [UIApplication sharedApplication];
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge
|UIUserNotificationTypeSound
|UIUserNotificationTypeAlert) categories:nil];
[application registerUserNotificationSettings:settings];
} else {
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[application registerForRemoteNotificationTypes:myTypes];
}
und im App-Delegaten hinzufügen
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
[application registerForRemoteNotifications];
}
iOS8 kann stille Benachrichtigungen empfangen, ohne um Erlaubnis zu bitten. Anruf
- (void)registerForRemoteNotifications
. Danach application:didRegisterForRemoteNotificationsWithDeviceToken:
wird aufgerufen
Hinweis: Der Rückruf mit dem Token wird nur aufgerufen, wenn sich die Anwendung mit der folgenden Funktion erfolgreich für Benutzerbenachrichtigungen registriert hat oder wenn die Aktualisierung der Hintergrund-App aktiviert ist.
Überprüfen Sie die Einstellungen für Ihre App, wenn ein Benachrichtigungstyp aktiviert ist. Wenn nicht, erhalten Sie kein Geräte-Token.
Sie können jetzt stille Benachrichtigungen mit erhalten
aps {
content-available: 1
}
in der Benachrichtigungsnutzlast
Benachrichtigungen, die angezeigt werden, müssen jedoch noch genehmigt werden. Anruf
UIUserNotificationType types = UIUserNotificationTypeSound | UIUserNotificationTypeBadge | UIUserNotificationTypeAlert;
UIUserNotificationSettings *notificationSettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[application registerUserNotificationSettings:notificationSettings];
Dieser Code sollte um Erlaubnis bitten.
Sie sollten jetzt bereit sein, Push-Benachrichtigungen zu erhalten