Найти в Дзене
Даниил Зазулин

Swift. User Notifications in Suspend

Недавно была поставлена задача передавать данные по сети после пуш уведомления, когда приложение убито. Причем когда "не убито" запрос должен отправляться с основного модуля с данными, которые включают информацию по авторизации. Раньше мне не приходилось сталкиваться с этим, поэтому зафиксирую, чтобы не забыть.
1) метод application(_:didReceiveRemoteNotification:) не срабатывает, когда приложение убито юзером или не было запущено после перезагрузки устройства. 2) обрабатывать такие пуши нужны в NotificationService. Подробно описано в статье.
https://www.raywenderlich.com/8277640-push-notifications-tutorial-for-ios-rich-push-notifications
3) для того чтобы NotificationService начал обрабатывает пуши, которые удовлетворяют двум условиям. 4) чтобы брать данные из UserDefaults понадобилось создать appGroup и добавить туда приложение и notificationService, так как notificationService не может видеть напрямую данные из основного приложения. 5) чтобы notificationCenter не перехватывал соб

Недавно была поставлена задача передавать данные по сети после пуш уведомления, когда приложение убито. Причем когда "не убито" запрос должен отправляться с основного модуля с данными, которые включают информацию по авторизации. Раньше мне не приходилось сталкиваться с этим, поэтому зафиксирую, чтобы не забыть.
1) метод application(_:didReceiveRemoteNotification:) не срабатывает, когда приложение убито юзером или не было запущено после перезагрузки устройства.

https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application
https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application

2) обрабатывать такие пуши нужны в NotificationService. Подробно описано в статье.
https://www.raywenderlich.com/8277640-push-notifications-tutorial-for-ios-rich-push-notifications
3) для того чтобы NotificationService начал обрабатывает пуши, которые удовлетворяют двум условиям.

https://developer.apple.com/documentation/usernotifications/modifying_content_in_newly_delivered_notifications
https://developer.apple.com/documentation/usernotifications/modifying_content_in_newly_delivered_notifications

4) чтобы брать данные из UserDefaults понадобилось создать appGroup и добавить туда приложение и notificationService, так как notificationService не может видеть напрямую данные из основного приложения.

https://developer.apple.com/documentation/notificationcenter/building_a_simple_widget_for_the_today_view
https://developer.apple.com/documentation/notificationcenter/building_a_simple_widget_for_the_today_view

5) чтобы notificationCenter не перехватывал события при включенном состоянии и вообще не отображался пуш, нужно:

https://stackoverflow.com/questions/43499834/is-it-possible-to-prevent-a-remote-notification-from-being-displayed
https://stackoverflow.com/questions/43499834/is-it-possible-to-prevent-a-remote-notification-from-being-displayed

Вроде все знания которые мне понадобились.