Новый UNUserNotificationCenterDelegate в iOS 10 теперь имеет единый набор методов для обработки как удаленных, так и локальных уведомлений. .
UNUserNotificationCenterDelegate
протокол:
userNotificationCenter(_:didReceive:withCompletionHandler:)
Вызывается, чтобы сообщить вашему приложению, какое действие было выбрано пользователем для данного уведомления.
userNotificationCenter(_:willPresent:withCompletionHandler:)
Доставляет уведомление приложению, работающему на переднем плане.
Два метода. И что еще лучше, так это то, что теперь, когда они перешли на собственный протокол, iOS 10
UNUserNotificationCenterDelegate
, так что это поможет очистить ваш существующий UIApplicationDelegat
e, поскольку вы сможете преобразовать весь этот старый код обработки уведомлений в собственный блестящий, новый, целостный протокол.
Вот пример:
extension NotificationManager: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: () -> Void) {
switch response.actionIdentifier {
// NotificationActions is a custom String enum I've defined
case NotificationActions.HighFive.rawValue:
print("High Five Delivered!")
default: break
}
}
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void) {
// Delivers a notification to an app running in the foreground.
}
}
person
Pooja Srivastava
schedule
05.10.2016