Итак, мы все знаем, что Apple представила UserNotifications Framework этим летом, и это здорово. И в соответствии с рекомендациями API от Apple и WWDC сессии об этих рамках, мы теперь имеем новый способ регистрации для нажимного уведомления следующим образом:Удаленные уведомления в iOS 10
UNUserNotificationCenter.current().requestAuthorization(options: [options], completionHandler: {})
Но ясно, что этот метод не собирается получить deviceToken от сервера APNs поэтому компания Apple сохранила некоторые API в UIKit следующим образом:
UIApplication.shared.registerForRemoteNotifications()
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data){}
Это два метода для регистрации и получения deviceToken для удаленных уведомлений.
Так что становится двусмысленным, что если я хочу зарегистрироваться только для удаленных уведомлений, мне все равно придется делать requestAuthorization
вещь? Или requestAuthorization
только для регистрации местных уведомлений?
Плюс, если мне нужно реализовать оба из них, даже если я хочу зарегистрироваться только для удаленных уведомлений, где я должен писать registerForRemoteNotifications()
? Должен ли я писать его в completionHandler
в requestAuthorization
или просто написать его снаружи, как если бы эти две команды request
и register
работали параллельно?
Я просто очень смущен, что это не логически понятно, я имею в виду, как мы реализуем код. Например, если внутри обработчика завершения я обнаружил, что 'given == false', что означает, что пользователи отклонили запрос приложения для уведомления, для чего нам еще нужно« registerForRemoteNotifications »параллельно? – Allen
Просто сделал несколько тестов в своем приложении, чтобы я мог обновить свой ответ. Я согласен, что документация крайне неясна. – charmingToad
Угадайте, что Apple просто нуждается в улучшении. – Allen