Расширение службы уведомлений (Notification Service Extension) — это небольшое исполняемое дополнение, встроенное в ваше iOS-приложение. Оно позволяет изменить внешний вид контента удаленного push-уведомления перед его отображением пользователю.
Основные функции:
- Модификация контента: Изменение заголовка, подзаголовка, текста или добавление вложений (изображений, видео) к уведомлению.
- Decrypting Encrypted Content: Расшифровка зашифрованных данных, отправленных вместе с уведомлением, перед их отображением пользователю.
- Rich Notifications: В сочетании с расширением контента уведомлений (Notification Content Extension), позволяет создавать кастомные интерфейсы для отображения уведомлений.
Жизненный цикл:
- При получении удаленного уведомления с ключом
mutable-content: 1, система инициирует запуск расширения службы уведомлений.
- Реализуется метод
didReceive(_:withContentHandler:), в котором происходит обработка и модификация уведомления.
- Измененный контент передается в completion handler
contentHandler.
- Система отображает модифицированное уведомление.
Ограничения:
- Кратковременное выполнение (обычно около 30 секунд).
- Ограниченный доступ к ресурсам системы.
- Не может выполнять длительные фоновые задачи.
Пример базовой реализации:
swift