Получение удаленного уведомления в 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) { }
1 ответ
Решение
Я думаю, что вы пытаетесь сделать что-то вроде этого:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
// Extrapolate userInfo
let userInfo = response.notification.request.content.userInfo
let queryNotification = CKQueryNotification(fromRemoteNotificationDictionary: userInfo)
let notification = Notification(name: NSNotification.Name("Name"), object: nil, userInfo: ["Key": queryNotification])
NotificationCenter.default.post(notification)
completionHandler()
}