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 или Яндекс.Метрика позволяют фиксировать идентификатор действия, время нажатия и контекст уведомления. Эти данные помогают оптимизировать стратегию уведомлений и повышать вовлечённость. A/B-тестирование с разными наборами действий помогает определить наиболее эффективные сценарии взаимодействия с пользователем.

Надёжная обработка при закрытом приложении

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

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

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

Часто задаваемые вопросы

Сколько действий можно добавить в одно уведомление?

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

Как добавить иконку для Notification Action на Android?

Иконка передаётся в NotificationCompat.Action.Builder как ресурс drawable. Иконка должна быть монохромной (alpha-канал), размером 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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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