Что такое уровень прерывания уведомлений в iOS

Начиная с iOS 15 изменилась логика показа пуш-уведомлений. Раньше пуш-уведомления всегда отображались мгновенно после получения, но начиная с iOS 15 пользователь может настроить отложенный показ уведомлений по собственному расписанию и режим Фокусирования (Focus Mode) – в этих случаях iOS поместит уведомление в сводку (Notification Summary) и покажет согласно расписанию или после окончания режима Фокусирования.
Статус Пуш доставлен будет отправлен пуш-библиотекой сразу же после доставки, а не в момент показа уведомления – это значит, что и перехода к резервному шагу доставки не будет.

Вид сводки уведомлений в iOS 15 (Notification Summary)

Apple даёт разработчикам возможность указать уровень прерывания (срочности) уведомления – Notification Interruption Level. Всего доступно 4 уровня срочности: Active (по умолчанию), Passive, Time-Sensitive и Critical.

Уведомления уровня Critical всегда показываются сразу после получения, но этот уровень зарезервирован для оповещений о чрезвычайных ситуациях и других срочных правительственных сообщений. Приложению нужно пройти специальное ревью Apple, чтобы iOS учитывала этот уровень.

Time-Sensitive тоже показываются сразу после получения. Этот уровень подходит для уведомлений, которые пользователь ожидает получить без промедления. К ним можно отнести уведомления о совершенных транзакциях и одноразовых паролях. 

Для использования этого уровня вместе с уведомлением должен быть передан параметр aps/interruption-level со значением time-sensitive, а в Xcode-проекте приложения должна быть добавлена capability Time Sensitive Notifications.

После первого показа уведомления уровня Time-Sensitive, iOS запросит у пользователя разрешение на дальнейший показ таких уведомлений. Если пользователь откажет, iOS больше не позволит приложению показывать пользователю Time-Sensitive пуши – все следующие пуши для этого пользователя будут отображаться с уровнем срочности Aсtive.

Системный запрос разрешения на показ Time-Sensitive пушей

Уровень Active также подходит для уведомлений, которые пользователь хотел бы получить сразу же. Но в отличие от Time-Sensitive, на Active распространяются правила режима Фокусирования и отложенного показа.

Этот уровень применяется ко всем уведомлениям, для которых не указан параметр уровня срочности aps/interruption-level.

Уровень Passive рекомендуется для всех прочих уведомлений. При показе уведомления этого уровня не воспроизводится звук, вибрация и не включается экран.

На телефонах с версиями iOS ниже 15 параметр interruption-level будет проигнорирован и уведомления будут показаны как раньше.

Итоги

Раньше пуш-уведомления в iOS отображались мгновенно после получения, но начиная с iOS 15 пользователь может настроить отложенный показ.

На процент доставки пуш-уведомлений отложенный показ не влияет – пуш-библиотека подтверждает доставку сразу же, а не в момент показа уведомления.

Apple даёт разработчикам возможность указать уровень срочности уведомлений. Для транзакций и одноразовых паролей лучше всего подходит уровень срочности Time-Sensitive – уведомления этого уровня показываются сразу же после получения. Для маркетинговых уведомлений подходит уровень Active, на который распространяются правила отложенного показа.

После первого показа уведомления уровня Time-Sensitive, iOS запросит у пользователя разрешение на дальнейший показ таких уведомлений, поэтому важно указывать уровень Time-Sensitive только для срочных уведомлений, чтобы увеличить шанс получения пользовательского разрешения.

Если не указывать уровень срочности, то применяется уровень Active.

На телефонах с предыдущими версиями iOS уровень срочности будет проигнорирован и уведомления будут показаны как раньше.

In this article
Разделы статьи