У меня есть следующий код:Получение удаленного уведомления в Swift 3
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
let queryNotification = CKQueryNotification(fromRemoteNotificationDictionary: userInfo)
let notification = Notification(name: NSNotification.Name("Name"), object: nil, userInfo: ["Key": queryNotification])
NotificationCenter.default.post(notification)
}
Однако, мне сказали, что это не правильный путь для получения удаленных уведомлений. Вместо этого мне было предложено использовать следующий метод делегата. Я не вижу, как этот метод можно использовать для выполнения того, что я сделал выше. Кто-нибудь, пожалуйста, помогите.
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) { }
Вы правильно. Удаленные уведомления не передаются методу UNNotificationCenterDelegate – Paulw11
@ Paulw11 - с iOS 10 и выше вам нужно использовать 'UNNotificationCenterDelegate'. 'UIUserNotifications' устарели. – Pierce
Это верно для запроса разрешений на уведомления и для обработки локальных уведомлений, но вы увидите, что 'приложение (_ приложение: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completeHandler: @escaping (UIBackgroundFetchResult) -> Void)' is * не устарел * https://developer.apple.com/reference/uikit/uiapplicationdelegate/1623013-application Кроме того, «получение удаленных уведомлений» не содержится в обзоре «UNNotificationCenter» https://developer.apple.com/ ссылка/usernotifications/unnernotificationcenter? language = objc – Paulw11