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.
  • Поддържани са бутони, текстово въвеждане, отбелязване като „завършено“ и закъснели действия.
  • Всяко действие трябва да се обработва в callback на приложението при клик.

Какво е Notification Action

Notification Action — е интерактивен интерфейсен елемент, който се добавя към push известие за изпълнение на конкретно действие. Потребителят може да отговори на съобщение, да потвърди задача или да отвори конкретен екран, без да влиза в приложението. Действията се показват като бутони под текста на известието или в разширен изглед при плъзнене.

Защо са нужни действията в известията

Основната цел на Notification Action е да намали броя стъпки, които потребителят трябва да направи, за да постигне целта си. Вместо да отваря приложението и навигира до желания екран, потребителят кликва един бутон. Проучванията показват, че приложенията с интерактивни известия имат 25–40% по-високо ниво на ангажиране в сравнение с обикновените известия.

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

На Android, Notification Action се показва като икони-бутони в компактен изглед и като текстови бутони в разширен режим. На 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 рамката. Разработчикът създава категории действия (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. Препоръчва се да изисквате потвърждане за деструктивни действия, например чрез допълнителен диалог или второ кликване.

Входни действия с текстово въвеждане

Отделен клас действия — текстово въвеждане директно от известието. На 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 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също