Я давно работаю с уведомлениями, и я мог бы поклясться, что userNotificationCenter(_:didReceive:withCompletionHandler:)
раньше обрабатывался, только если приложение было открыто с помощью уведомления.
Однако, просмотрев активных уведомлений , я нашел это:
Когда пользователь выбирает действие, система запускает ваше приложение в фоновом режиме и уведомляет общий объект UNUserNotificationCenter
, который уведомляет своего делегата. Используйте метод userNotificationCenter(_:didReceive:withCompletionHandler:)
вашего объекта-делегата, чтобы идентифицировать выбранное действие и предоставить соответствующий ответ.
Значит ли это, что, казалось бы, универсальный метод делегата didReceive
теперь работает, даже когда устройство заблокировано?
Или приложение всегда должно быть открыто, чтобы действительно что-то значимое реагировать на действия по уведомлению (запись в локальную базу данных, отправка HTTPS-запросов и т. Д.)?