Swift 3 IOS 10:我一直在尋找允許推送通知的代碼;最後,我可以從www.codementor.io找到一個非常有用的。但是,我陷入了困惑。我想知道下面的代碼是否適用於較低或較新版本的iOS。由於蘋果將不懈地發佈它的版本,下面的代碼將如何處理這些變化?有沒有辦法解決我提到的問題?允許推送通知版本控制
// 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])
}
您的代碼是正確的。只需將iOS 9,8和7合併爲一個塊即可。 iOS 10在單獨的塊中。 – Basheer
如果我這樣做,如果新發布的iOS版本投入使用,該代碼是否仍然有效?謝謝您的回答。 –
您正在檢查#available標記,它將驗證設備的操作系統版本並執行該塊。從iOS 10到現在(iOS 11),仍然使用UNUserNotification類。一旦蘋果改變了這個框架,你必須像現在爲iOS 10那樣支持新的框架。 – Basheer