Notification Action у мобільних додатках: що це, різновиди та налаштування

Автор: IT Sectr Опубліковано: 2026-03-21 Час читання: 8 хв

Notification Action — інтерактивні кнопки та поля введення, які відображаються безпосередньо в push-сповіщенні та дозволяють користувачеві виконати дію без відкриття додатка. Це ключовий елемент користувацького досвіду, що скорочує шлях до цільового екрана. За даними Android Developers, 2025, Notification Action підвищує залученість користувачів до 40% за рахунок зниження тертя під час взаємодії.

Головне

  • Notification Action — інтерактивний елемент у push-сповіщеннях для швидкого виконання завдань.
  • На Android дії реалізуються через PendingIntent та NotificationCompat.Action.Builder.
  • На iOS дії налаштовуються через UNNotificationAction та UNNotificationCategory.
  • Підтримуються кнопки, текстове введення, позначка «виконано» та відкладені дії.
  • Кожна дія повинна оброблятися в колбеку додатка при натисканні.

Що таке Notification Action

Notification Action — це інтерактивний елемент інтерфейсу, що додається в push-сповіщення для виконання певної дії. Користувач може відповісти на повідомлення, підтвердити завдання або відкрити конкретний екран, не заходячи в додаток. Дії відображаються у вигляді кнопок під текстом сповіщення або в розширеному вигляді при свайпі.

Навіщо потрібні дії в сповіщеннях

Основна мета Notification Action — скоротити кількість кроків для досягнення мети користувачем. Замість відкриття додатка та навігації до потрібного екрана користувач натискає одну кнопку. Дослідження показують, що додатки з інтерактивними сповіщеннями демонструють на 25–40% вищий рівень залученості порівняно з простими сповіщеннями.

Візуальне представлення на різних платформах

На Android Notification Action відображаються у вигляді іконок-кнопок у компактному вигляді та текстових кнопок у expandable-режимі. На iOS дії з'являються при довгому натисканні на сповіщення або при свайпі вліво. Кожна платформа має свої рекомендації щодо кількості дій — Android рекомендує не більше 3, iOS — не більше 4.

ПлатформаМакс. дійСпосіб відображенняТипи дій
Android3Іконки + текстКнопки, введення тексту
iOS4Довге натискання / свайпКнопки, введення тексту

Notification Action на Android

На Android Notification Action створюються через NotificationCompat.Builder з використанням методу addAction(). Кожна дія містить іконку, текст та PendingIntent, який спрацьовує при натисканні. Починаючи з Android 7.0 (API 24), підтримується пряме введення тексту через RemoteInput.

Створення базової дії

Для створення кнопки в сповіщенні необхідно визначити PendingIntent, який буде запущено при натисканні. PendingIntent може відкривати Activity, запускати Service або BroadcastReceiver. Іконка дії повинна бути монохромною та відповідати Material Design.

kotlin
val acceptIntent = Intent(context, AcceptActionReceiver::class.java)
acceptIntent.putExtra("notification_id", notificationId)

val acceptPendingIntent = PendingIntent.getBroadcast(
    context, requestCode,
    acceptIntent, PendingIntent.FLAG_UPDATE_CURRENT
)

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("Запит на підтвердження")
    .setContentText("Підтвердьте виконання завдання")
    .addAction(R.drawable.ic_accept, "Підтвердити", acceptPendingIntent)
    .build()

Дія з текстовим введенням (RemoteInput)

Для сценаріїв, де потрібне введення тексту (наприклад, відповідь на повідомлення), Android надає RemoteInput. Користувач вводить текст прямо в сповіщенні, і додаток отримує його без відкриття Activity. RemoteInput підтримується на Android 7.0+ та вимагає явної обробки в BroadcastReceiver або Service.

kotlin
val remoteInput = RemoteInput.Builder("reply_input")
    .setLabel("Введіть відповідь")
    .build()

val replyAction = NotificationCompat.Action.Builder(
    R.drawable.ic_reply, "Відповісти", replyPendingIntent
)
    .addRemoteInput(remoteInput)
    .build()

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .addAction(replyAction)
    .build()

Обробка дій на Android

При натисканні на дію система запускає вказаний PendingIntent. Для отримання введеного тексту з RemoteInput викличте RemoteInput.getResultsFromIntent(intent). Рекомендується обробляти дії в IntentService або WorkManager, щоб не блокувати UI-потік.

Notification Action на iOS

На iOS Notification Action реалізуються через UserNotifications framework. Розробник створює категорії дій (UNNotificationCategory) та реєструє їх при запуску додатка. Кожна дія визначається об'єктом UNNotificationAction з унікальним ідентифікатором.

Налаштування категорій та дій на iOS

Для додавання дій у push-сповіщення iOS необхідно створити категорію, яка групує пов'язані дії. Категорія вказується в корисному навантаженні сповіщення через поле category. При отриманні сповіщення система відображає доступні дії із зазначеної категорії.

swift
import UserNotifications

class NotificationSetup {

    func registerNotificationCategories() {
        let approveAction = UNNotificationAction(
            identifier: "APPROVE_ACTION",
            title: "Підтвердити",
            options: [.foreground]
        )

        let declineAction = UNNotificationAction(
            identifier: "DECLINE_ACTION",
            title: "Відхилити",
            options: [.destructive]
        )

        let category = UNNotificationCategory(
            identifier: "REQUEST_CATEGORY",
            actions: [approveAction, declineAction],
            intentIdentifiers: [],
            options: []
        )

        UNUserNotificationCenter.current()
            .setNotificationCategories([category])
    }
}

Обробка дій на iOS

Коли користувач натискає на дію, система викликає метод userNotificationCenter:didReceiveNotificationResponse в делегаті UNUserNotificationCenter. У response.actionIdentifier міститься ідентифікатор виконаної дії. Для текстового введення використовується UNTextInputNotificationAction, який надає введений користувачем текст.

swift
extension AppDelegate: UNUserNotificationCenterDelegate {

    func userNotificationCenter(
        center: UNUserNotificationCenter,
        didReceive response: UNNotificationResponse,
        withCompletionHandler completionHandler: @escaping () -> Void
    ) {
        switch response.actionIdentifier {
        case "APPROVE_ACTION":
            Log.d("Action: approved")
        case "DECLINE_ACTION":
            Log.d("Action: declined")
        case UNNotificationDefaultActionIdentifier:
            Log.d("Action: opened app")
        default:
            break
        }
        completionHandler()
    }
}

Типи та сценарії Notification Action

Notification Action класифікуються за типом взаємодії та сценарієм використання. Правильний вибір типу дії безпосередньо впливає на користувацький досвід та конверсію в цільову дію.

Кнопки з запуском додатка

Найпоширеніший тип — кнопка, що відкриває додаток на певному екрані. На Android для цього використовується PendingIntent.getActivity(), на iOS — опція .foreground у UNNotificationAction. Застосовується для дій, що вимагають повного інтерфейсу, наприклад перегляд деталей замовлення.

Фонові дії

Дії, які виконуються без відкриття додатка. На Android використовується PendingIntent.getBroadcast() або PendingIntent.getService(). На iOS — опція .authenticationRequired або без .foreground. Приклади: позначка завдання виконаним, лайк посту, додавання в обране.

Текстове введення

Дозволяє користувачеві ввести текст прямо в сповіщенні. На Android реалізується через RemoteInput, на iOS — через UNTextInputNotificationAction. Використовується для відповідей на повідомлення, коментарів, введення одноразових кодів підтвердження.

Деструктивні дії

Дії, які необоротно змінюють дані — видалення, відхилення, блокування. На Android виділяються візуально (червоний колір у деяких системах), на iOS вимагають опції .destructive. Рекомендується запитувати підтвердження для деструктивних дій, наприклад через додатковий діалог або друге натискання.

Input-дії з текстовим введенням

Окремий клас дій — введення тексту безпосередньо зі сповіщення. На Android це реалізується через RemoteInput у комбінації з PendingIntent. На iOS використовується UNTextInputNotificationAction, що успадковує UNNotificationAction. Такі дії застосовуються для швидких відповідей у месенджерах, введення промокодів, заповнення форм зворотного зв'язку або оцінки якості обслуговування. Введений текст передається в додаток разом з ідентифікатором дії. Для коректної обробки текстового введення на обох платформах необхідно реалізувати парсинг введених даних та валідацію перед виконанням цільової дії.

Обробка натискань та логування

Коректна обробка Notification Action критична для аналітики та користувацького досвіду. Кожне натискання повинно бути залоговане, а дія — виконана надійно, навіть якщо додаток був закритий.

Аналітика та відстеження

Відстежуйте кожне натискання на Notification Action через систему аналітики. Firebase Analytics, Mixpanel або Yandex.Metrica дозволяють фіксувати ідентифікатор дії, час натискання та контекст сповіщення. Ці дані допомагають оптимізувати стратегію сповіщень та підвищувати залученість. A/B-тестування з різними наборами дій допомагає визначити найбільш ефективні сценарії взаємодії з користувачем.

Надійна обробка при закритому додатку

Якщо додаток закритий, система все одно передає Intent або UNNotificationResponse при натисканні на дію. На Android використовуйте BroadcastReceiver для гарантованої обробки. На iOS система запускає додаток у фоні та передає відповідь делегату. Для критично важливих дій (підтвердження платежу, авторизація) додайте механізм повторної спроби та повідомлення користувача про успішне виконання.

Візуальна кастомізація кнопок на Android

Починаючи з Android 7.0, розробник може впливати на відображення Notification Action через іконки та кольори. Іконки повинні бути монохромними (альфа-канал), розміром 24x24 dp. На iOS кастомізація кнопок обмежена — використовуються системні кольори та шрифти. Material Design рекомендує групувати дії за пріоритетом: найважливіша дія — першою, деструктивні — останніми.

Часті запитання

Скільки дій можна додати в одне сповіщення?

На Android рекомендується не більше 3 дій, на iOS — до 4. Перевищення ліміту призводить до того, що частина дій не відображається або ховається в підменю.

Як додати іконку для Notification Action на Android?

Іконка передається в NotificationCompat.Action.Builder як ресурс drawable. Іконка повинна бути монохромною (альфа-канал), розміром 24x24 dp та відповідати рекомендаціям Material Design.

Чи працюють Notification Action на заблокованому екрані?

Так, якщо сповіщення відображається на заблокованому екрані та встановлено прапорець visibility як VISIBILITY_PUBLIC. На iOS потрібна опція .authenticationRequired для дій, що вимагають авторизації.

Як обробити натискання на дію, якщо додаток видалено з пам'яті?

На Android система відтворює процес і доставляє Intent. На iOS система запускає додаток у фоні. Гарантувати отримання можна за допомогою BroadcastReceiver на Android та UNNotificationServiceExtension на iOS.

Чим відрізняється дія на Android від iOS за користувацьким досвідом?

На Android дії видно відразу під сповіщенням у вигляді іконок. На iOS дії приховані за довгим натисканням або свайпом. UX-дизайн сповіщень повинен враховувати ці платформенні відмінності.

Підсумки

  • Notification Action — кнопки та поля введення в push-сповіщеннях для швидкої взаємодії.
  • На Android дії створюються через NotificationCompat.Action з PendingIntent.
  • На iOS дії визначаються через UNNotificationAction з реєстрацією категорії.
  • Текстове введення реалізується через RemoteInput (Android) або UNTextInputNotificationAction (iOS).
  • Максимальна кількість дій — 3 для Android, 4 для iOS.
  • Кожна дія повинна логуватися в систему аналітики для оптимізації сповіщень.
  • Для надійної обробки використовуйте BroadcastReceiver на Android та AppDelegate на iOS.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також