Swift 3 IOS 10: J'ai recherché du code pour autoriser la notification push; Enfin, je pourrais trouver un précis utile de www.codementor.io. Cependant, je suis entré dans le puzzle. Je me demande si le code suivant fonctionnera avec la version inférieure ou plus récente d'iOS. Puisque Apple publiera sa version sans relâche, comment le code suivant sera capable de gérer les changements? Y a-t-il un moyen de régler le problème que j'ai mentionné?Autorisation des notifications push Contrôle de version
// iOS 10 support
if #available(iOS 10, *) {
UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error) in }
application.registerForRemoteNotifications()
}
// iOS 9 support
else if #available(iOS 9, *) {
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
UIApplication.shared.registerForRemoteNotifications()
}
// iOS 8 support
else if #available(iOS 8, *) {
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
UIApplication.shared.registerForRemoteNotifications()
}
// iOS 7 support
else {
application.registerForRemoteNotifications(matching: [.badge, .sound, .alert])
}
Votre code est correct. Il suffit de combiner iOS 9, 8 et 7 en un seul bloc. iOS 10 dans un bloc séparé. – Basheer
Si je le fais, que se passe-t-il si une nouvelle version d'iOS est utilisée, est-ce que ce code prendra effet? Merci pour votre réponse. –
vous vérifiez la balise #available, qui vérifiera la version du système d'exploitation et exécutera le bloc. Depuis iOS 10 et jusqu'à présent (iOS 11), la classe UNUserNotification est toujours utilisée. Une fois que Apple a changé ce cadre, vous devez soutenir le nouveau cadre comme vous l'avez fait pour iOS 10. – Basheer