Interactive Notification — це push-сповіщення з інтерактивними елементами, що дозволяє виконати дію без відкриття додатка. За даними Apple Human Interface Guidelines (2025), такі сповіщення скорочують кількість кроків до цільової дії на 40%. Кнопки дій та поля введення дають користувачеві можливість відповісти на повідомлення, оплатити підписку або підтвердити бронювання прямо з шторки, не відкриваючи додаток.
Головне
Interactive Notification — це розширений формат push-сповіщення, що містить інтерактивні елементи керування: кнопки, перемикачі та поля введення тексту. На відміну від стандартного сповіщення, яке тільки інформує, інтерактивне дозволяє користувачеві виконати цільову дію прямо з шторки або lock screen. За даними Google Material Design (2025), інтерактивні сповіщення обробляються операційною системою без запуску основного процесу додатка — це економить ресурс батареї та прискорює відгук. Розробник визначає набір дій через категорії на iOS та канали на Android, а система відображає їх залежно від контексту.
Кожне інтерактивне сповіщення складається з трьох рівнів: основний вміст (заголовок, тіло), екшени (кнопки) та опціональне текстове введення. На iOS ці компоненти об'єднуються через UNNotificationCategory, а на Android — через NotificationCompat.Action.Builder. Система відображає кнопки під текстом сповіщення в стислому або розгорнутому вигляді залежно від версії ОС та довжини тексту. Користувач бачить доступні дії відразу після отримання сповіщення і може виконати одну з них без переходу в додаток.
Механізм роботи Interactive Notification розділяється на дві фази: реєстрація категорій при старті додатка та обробка дії при натисканні користувачем. На етапі реєстрації розробник створює об'єкти категорій з набором екшенів — кожен екшен має ідентифікатор, заголовок та опції. При отриманні push-сповіщення система зіставляє його із зареєстрованою категорією за полем categoryIdentifier і автоматично додає відповідні кнопки. Коли користувач натискає кнопку, система викликає делегат UNUserNotificationCenter або PendingIntent на Android з ідентифікатором дії та передає результат назад у додаток. За даними WWDC 2024, час обробки інтерактивної дії на iOS не перевищує 200 мс при коректному налаштуванні.
Інтерактивні сповіщення поділяються на три основних типи за способом взаємодії: кнопкові, текстові та мультимедійні. Кожен тип вирішує своє завдання і застосовується в певних сценаріях. Вибір типу залежить від контексту — чим менше кроків потрібно користувачеві, тим вища конверсія. Apple та Google рекомендують використовувати кнопки для підтвердження, поле введення для відповідей та медіа для попереднього перегляду вмісту.
Найпоширеніший тип — сповіщення з однією або кількома кнопками, кожна з яких виконує попередньо визначену дію. Наприклад, кнопки «Прийняти» та «Відхилити» для події календаря, «Like» та «Reply» для повідомлення. На iOS підтримується до чотирьох кнопок, на Android — до трьох. Кнопки можна групувати за пріоритетом: звичайні та деструктивні (з підтвердженням). Apple рекомендує не більше двох основних кнопок для зручності користувача на lock screen.
RemoteInput — технологія, що дозволяє користувачеві ввести текст прямо в сповіщенні без відкриття додатка. На iOS для цього використовується UNTextInputNotificationAction, на Android — RemoteInput.Builder з ключем для вилучення введеного тексту. Найчастіше застосовується в месенджерах для швидкої відповіді на повідомлення. Введений текст передається в додаток через сервіс сповіщень або локальний обробник. Обмеження — текст не може містити форматування, тільки plain string.
Сповіщення з медіавкладеннями дозволяють показувати зображення, аудіо та відео прямо в шторці. На iOS це реалізується через UNNotificationAttachment, на Android — через NotificationCompat.MessagingStyle з BigPictureStyle. Медіа завантажується сервером push-провайдера і передається разом зі сповіщенням як вкладення. Розмір вкладення обмежений — Apple рекомендує не більше 10 МБ, Google — не більше 1 МБ для зображень. Медіаконтент підвищує інформативність сповіщення для новин, маркетплейсів та соцмереж.
На iOS Interactive Notification реалізується через фреймворк UserNotifications з використанням UNNotificationCategory та UNNotificationAction. Додаток реєструє категорії при запуску, а при отриманні сповіщення система автоматично відображає відповідні кнопки. Для обробки дій необхідно реалізувати метод userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler. Нижче наведено приклад реєстрації категорії з кнопкою та текстовим введенням на Swift.
import UserNotifications
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "Відповісти",
options: [.authenticationRequired],
textInputButtonTitle: "Надіслати",
textInputPlaceholder: "Введіть повідомлення…"
)
let category = UNNotificationCategory(
identifier: "message",
actions: [replyAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
Після виклику setNotificationCategories система зберігає категорії та використовує їх для всіх наступних сповіщень. Код має викликатися при кожному запуску додатка, щоб синхронізувати категорії з новими версіями. Обробка відповіді виконується в делегаті центру сповіщень — додаток отримує ідентифікатор дії та введений текст для подальшої обробки.
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completion: @escaping VoidBlock
) {
if response.actionIdentifier == "reply" {
let textResponse = response as! UNTextInputNotificationResponse
let message = textResponse.userText
sendMessage(message)
}
completion()
}
Метод userNotificationCenter викликається системою після натискання кнопки або надсилання тексту користувачем. Всередині обробника перевіряється actionIdentifier — якщо він збігається із зареєстрованим ідентифікатором, додаток вилучає введений текст з userText і надсилає на сервер. Для звичайних кнопок без текстового введення використовується UNNotificationResponse без приведення типу.
На Android інтерактивні сповіщення створюються через клас NotificationCompat з методами addAction та RemoteInput. На відміну від iOS, Android не вимагає попередньої реєстрації категорій — дії додаються безпосередньо в кожне сповіщення через Builder. Це дає більше гнучкості: кожне сповіщення може мати унікальний набір кнопок. Нижче наведено приклад сповіщення з кнопкою відповіді на Java з використанням RemoteInput.
RemoteInput remoteInput = new RemoteInput.Builder("key_reply")
.setLabel("Відповісти")
.build();
PendingIntent replyIntent = PendingIntent.getBroadcast(
this, 1001,
new Intent("ACTION_REPLY"),
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(
R.drawable.ic_reply,
"Відповісти", replyIntent
)
.addRemoteInput(remoteInput)
.build();
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, "messages")
.setContentTitle("Нове повідомлення")
.setContentText("Привіт! Як справи?")
.setSmallIcon(R.drawable.ic_notification)
.addAction(action);
NotificationManagerCompat.from(this)
.notify(100, builder.build());
Ключовий елемент — RemoteInput, який зв'язує поле введення з дією. При натисканні кнопки «Відповісти» система відкриває діалог введення тексту всередині сповіщення. Після надсилання текст передається через Intent в BroadcastReceiver або Activity за вказаним PendingIntent. Для отримання тексту в отримувачі використовується RemoteInput.getResultsFromIntent(intent) з ключем «key_reply».
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
CharSequence reply = results.getCharSequence("key_reply");
if (reply != null) {
sendReplyToServer(reply.toString());
}
}
Метод getResultsFromIntent витягує введений користувачем текст з Intent, переданого системою при надсиланні відповіді. Результат повертається у вигляді CharSequence, який перетворюється на рядок для надсилання на сервер. Якщо користувач закрив діалог введення без надсилання, results буде порожнім — це слід враховувати при обробці. Такий підхід дозволяє реалізувати швидку відповідь без запуску Activity.
Interactive Notification застосовується в додатках будь-якого типу, де потрібна швидка дія користувача. Найбільш ефективні сценарії — месенджери для відповіді на повідомлення, e-commerce для підтвердження замовлення та календарі для прийняття запрошення. За даними Localytics (2025), додатки з інтерактивними сповіщеннями показують на 28% вищий retention на 7-й день. Нижче представлена таблиця з популярними сценаріями та платформенними особливостями.
| Сценарій | Дії | Платформа |
|---|---|---|
| Месенджер | Відповісти текстом, поставити Like | iOS + Android |
| E-commerce | Підтвердити, відкласти, скасувати | iOS + Android |
| Календар | Прийняти, відхилити, maybe | iOS |
| Новини | Зберегти, поділитися, відкрити | Android |
| Бронювання | Підтвердити, перенести, скасувати | iOS + Android |
При проектуванні інтерактивних сповіщень важливо враховувати обмеження — користувач може виконати дію тільки один раз. Після натискання кнопки сповіщення зникає або переходить у стан «виконано». Тому кожна дія має бути незворотною або мати підтвердження на другому кроці.
Поширені запитання
Interactive Notification — це push-сповіщення з кнопками, полем введення або медіавкладенням, яке дозволяє користувачеві виконати дію без відкриття додатка. Підтримується на iOS через UserNotifications та на Android через NotificationCompat.
Звичайне сповіщення тільки інформує — користувач натискає і відкриває додаток. Інтерактивне сповіщення містить кнопки або поле введення, і дія виконується прямо в шторці. Це скорочує шлях до цільової дії та знижує навантаження на додаток.
На iOS підтримується до чотирьох кнопок, на Android — до трьох. На Android дві кнопки відображаються на панелі сповіщення, третя доступна в випадному меню. Apple рекомендує не більше двох основних кнопок для зручності користувача на lock screen.
На iOS використовується UNTextInputNotificationAction, на Android — RemoteInput.Builder з ключем. Користувач вводить текст у діалогове вікно всередині сповіщення, і додаток отримує його через делегат або Intent без запуску Activity.
Отримання push-сповіщення вимагає підключення до інтернету, але сама інтерактивність (відображення кнопок, текстове введення) працює офлайн. Передача результату на сервер може бути відкладена до відновлення з'єднання.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також