У меня возникают проблемы, когда пользователь нажимает на уведомление пользователя на iOS 10.
До сих пор я использовал -[UIApplicationDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:]
, который вызывается, когда
-
Case 1
: приложение активно и нажимается -
Case 2
: когда пользователь запустил приложение после записи полученного уведомления
Этот метод явно указывает
Обратите внимание, что это поведение отличается от приложения: didReceiveRemoteNotification:, которое не вызывается в этих случаях и которое не будет вызываться, если этот метод реализован.
Вся эта работа, как и ожидалось.
Теперь iOS 10 отказался от этого метода делегата и представил структуру UserNotification
, которую я не могу использовать, поскольку я все еще нацелен на iOS 8 и 9.
Когда мое приложение запущено на iOS 10, и нажатие на него будет получено, пока приложение активно (Case 1
), -[AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:]
вызывается правильно.
Снова на iOS 10, когда пользователь запускает приложение, нажав на уведомление (Case 2
), этот метод не называется.
Я понимаю, что когда я реализую более старый -[UIApplicationDelegate application:didReceiveRemoteNotification:]
, он получает вызов в Case 2
В iOS 8 и 9 в Case 2
вызывается метод -[AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:]
.
Означает ли это, что мне нужно обновить мое приложение и реализовать старый делегат только для iOS 10?
Итак, вопрос в том, какова правильная реализация обработки пользовательского взаимодействия полученного push на iOS 10 без использования структуры UserNotification
.
веселит, Ян