Notification Action w aplikacjach mobilnych: co to jest, rodzaje i konfiguracja

Autor: IT Sectr Opublikowano: 2026-03-21 Czas czytania: 8 min

Notification Action — interaktywne przyciski i pola tekstowe, które wyświetlają się bezpośrednio w powiadomieniu push i pozwalają użytkownikowi wykonać akcję bez otwierania aplikacji. To kluczowy element doświadczenia użytkownika, skracający drogę do docelowego ekranu. Według danych Android Developers, 2025, Notification Action zwiększa zaangażowanie użytkowników nawet o 40% dzięki zmniejszeniu tarcia podczas interakcji.

Najważniejsze

  • Notification Action — interaktywny element w powiadomieniu push do szybkiego wykonywania zadań.
  • Na Androidzie działania są implementowane przez PendingIntent i NotificationCompat.Action.Builder.
  • Na iOS działania konfiguruje się przez UNNotificationAction i UNNotificationCategory.
  • Obsługiwane są przyciski, wprowadzanie tekstu, oznaczenie „wykonano“ i działania odroczone.
  • Każde działanie musi być obsłużone w callbacku aplikacji po kliknięciu.

Co to jest Notification Action

Notification Action — to interaktywny element interfejsu dodawany do powiadomienia push w celu wykonania określonej akcji. Użytkownik może odpowiedzieć na wiadomość, potwierdzić zadanie lub otworzyć konkretny ekran bez wchodzenia do aplikacji. Działania są wyświetlane jako przyciski pod tekstem powiadomienia lub w rozszerzonym widoku po przesunięciu.

Po co są działania w powiadomieniach

Głównym celem Notification Action jest zmniejszenie liczby kroków potrzebnych do osiągnięcia celu przez użytkownika. Zamiast otwierać aplikację i nawigować do odpowiedniego ekranu, użytkownik klika jeden przycisk. Badania pokazują, że aplikacje z interaktywnymi powiadomieniami wykazują o 25–40% wyższy poziom zaangażowania w porównaniu do zwykłych powiadomień.

Reprezentacja wizualna na różnych platformach

Na Androidzie Notification Action wyświetlane są jako ikony-przyciski w widoku zwartym i jako tekstowe przyciski w trybie rozszerzonym. Na iOS działania pojawiają się po długim naciśnięciu powiadomienia lub przesunięciu w lewo. Każda platforma ma swoje zalecenia dotyczące liczby działań — Android zaleca nie więcej niż 3, iOS — nie więcej niż 4.

PlatformaMaks. działańSposób wyświetlaniaRodzaje działań
Android3Ikony + tekstPrzyciski, wprowadzanie tekstu
iOS4Długie naciśnięcie / przesunięciePrzyciski, wprowadzanie tekstu

Notification Action na Androidzie

Na Androidzie Notification Action tworzy się przez NotificationCompat.Builder przy użyciu metody addAction(). Każde działanie zawiera ikonę, tekst i PendingIntent, który uruchamia się po kliknięciu. Od Androida 7.0 (API 24) obsługiwane jest bezpośrednie wprowadzanie tekstu przez RemoteInput.

Tworzenie podstawowego działania

Aby utworzyć przycisk w powiadomieniu, należy zdefiniować PendingIntent, który zostanie uruchomiony po kliknięciu. PendingIntent może otwierać Activity, uruchamiać Service lub BroadcastReceiver. Ikona działania musi być monochromatyczna i zgodna z 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("Źądanie potwierdzenia")
    .setContentText("Potwierdź wykonanie zadania")
    .addAction(R.drawable.ic_accept, "Potwierdź", acceptPendingIntent)
    .build()

Działanie z wprowadzaniem tekstu (RemoteInput)

W scenariuszach wymagających wprowadzenia tekstu (np. odpowiedź na wiadomość) Android udostępnia RemoteInput. Użytkownik wprowadza tekst bezpośrednio w powiadomieniu, a aplikacja otrzymuje go bez otwierania Activity. RemoteInput jest obsługiwany od Androida 7.0+ i wymaga jawnej obsługi w BroadcastReceiver lub Service.

kotlin
val remoteInput = RemoteInput.Builder("reply_input")
    .setLabel("Wpisz odpowiedź")
    .build()

val replyAction = NotificationCompat.Action.Builder(
    R.drawable.ic_reply, "Odpowiedz", replyPendingIntent
)
    .addRemoteInput(remoteInput)
    .build()

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

Obsługa działań na Androidzie

Po kliknięciu działania system uruchamia określony PendingIntent. Aby uzyskać wprowadzony tekst z RemoteInput, wywołaj RemoteInput.getResultsFromIntent(intent). Zaleca się obsługę działań w IntentService lub WorkManager, aby nie blokować wątku UI.

Notification Action na iOS

Na iOS Notification Action są implementowane przez framework UserNotifications. Deweloper tworzy kategorie działań (UNNotificationCategory) i rejestruje je przy uruchomieniu aplikacji. Każde działanie jest definiowane przez obiekt UNNotificationAction z unikalnym identyfikatorem.

Konfiguracja kategorii i działań na iOS

Aby dodać działania do powiadomień push na iOS, należy utworzyć kategorię, która grupuje powiązane działania. Kategoria jest określana w ładunku powiadomienia przez pole category. Po otrzymaniu powiadomienia system wyświetla dostępne działania z określonej kategorii.

swift
import UserNotifications

class NotificationSetup {

    func registerNotificationCategories() {
        let approveAction = UNNotificationAction(
            identifier: "APPROVE_ACTION",
            title: "Potwierdź",
            options: [.foreground]
        )

        let declineAction = UNNotificationAction(
            identifier: "DECLINE_ACTION",
            title: "Odrzuć",
            options: [.destructive]
        )

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

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

Obsługa działań na iOS

Gdy użytkownik kliknie działanie, system wywołuje metodę userNotificationCenter:didReceiveNotificationResponse w delegacie UNUserNotificationCenter. W response.actionIdentifier znajduje się identyfikator wykonanego działania. Do wprowadzania tekstu używa się UNTextInputNotificationAction, który dostarcza tekst wprowadzony przez użytkownika.

swift
extension AppDelegate: UNUserNotificationCenterDelegate {

    func userNotificationCenter(
        center: UNUserNotificationCenter,
        didReceive response: UNNotificationResponse,
        withCompletionHandler completionHandler: @escaping () -> Void
    ) {
        switch response.actionIdentifier {
        case "APPROVE_ACTION":
            Log.d("Akcja: zatwierdzona")
        case "DECLINE_ACTION":
            Log.d("Akcja: odrzucona")
        case UNNotificationDefaultActionIdentifier:
            Log.d("Akcja: otworzono aplikację")
        default:
            break
        }
        completionHandler()
    }
}

Rodzaje i scenariusze Notification Action

Notification Action klasyfikuje się według typu interakcji i scenariusza użycia. Właściwy wybór typu działania bezpośrednio wpływa na doświadczenie użytkownika i konwersję na docelowe działanie.

Przyciski uruchamiające aplikację

Najczęstszy typ — przycisk otwierający aplikację na określonym ekranie. Na Androidzie używa się PendingIntent.getActivity(), na iOS — opcji .foreground w UNNotificationAction. Stosowany do działań wymagających pełnego interfejsu, np. podglądu szczegółów zamówienia.

Działania w tle

Działania wykonywane bez otwierania aplikacji. Na Androidzie używa się PendingIntent.getBroadcast() lub PendingIntent.getService(). Na iOS — opcji .authenticationRequired lub bez .foreground. Przykłady: oznaczenie zadania jako wykonane, polubienie posta, dodanie do ulubionych.

Wprowadzanie tekstu

Pozwala użytkownikowi wpisać tekst bezpośrednio w powiadomieniu. Na Androidzie implementuje się przez RemoteInput, na iOS — przez UNTextInputNotificationAction. Używane do odpowiedzi na wiadomości, komentarzy, wprowadzania jednorazowych kodów potwierdzenia.

Działania destrukcyjne

Działania, które nieodwracalnie zmieniają dane — usunięcie, odrzucenie, zablokowanie. Na Androidzie wyróżniają się wizualnie (czerwony kolor w niektórych systemach), na iOS wymagają opcji .destructive. Zaleca się proszenie o potwierdzenie dla działań destrukcyjnych, np. przez dodatkowy dialog lub drugie kliknięcie.

Działania wejściowe z wprowadzaniem tekstu

Osobna klasa działań — wprowadzanie tekstu bezpośrednio z powiadomienia. Na Androidzie implementuje się przez RemoteInput w połączeniu z PendingIntent. Na iOS używa się UNTextInputNotificationAction, dziedziczącego po UNNotificationAction. Takie działania są stosowane do szybkich odpowiedzi w komunikatorach, wprowadzania kodów promocyjnych, wypełniania formularzy zwrotnych lub oceny jakości usługi. Wprowadzony tekst jest przekazywany do aplikacji wraz z identyfikatorem działania. Do prawidłowej obsługi wprowadzania tekstu na obu platformach należy zaimplementować parsowanie wprowadzonych danych i walidację przed wykonaniem docelowego działania.

Obsługa kliknięć i logowanie

Prawidłowa obsługa Notification Action jest kluczowa dla analityki i doświadczenia użytkownika. Każde kliknięcie musi być zalogowane, a działanie — wykonane niezawodnie, nawet gdy aplikacja była zamknięta.

Analityka i śledzenie

Śledź każde kliknięcie Notification Action przez system analityczny. Firebase Analytics, Mixpanel lub Yandex.Metrica pozwalają rejestrować identyfikator działania, czas kliknięcia i kontekst powiadomienia. Te dane pomagają optymalizować strategię powiadomień i zwiększać zaangażowanie. Testy A/B z różnymi zestawami działań pomagają określić najskuteczniejsze scenariusze interakcji z użytkownikiem.

Niezawodna obsługa przy zamkniętej aplikacji

Jeśli aplikacja jest zamknięta, system nadal przekazuje Intent lub UNNotificationResponse po kliknięciu działania. Na Androidzie użyj BroadcastReceiver do gwarantowanej obsługi. Na iOS system uruchamia aplikację w tle i przekazuje odpowiedź delegatowi. W przypadku krytycznych działań (potwierdzenie płatności, autoryzacja) dodaj mechanizm ponownej próby i powiadomienie użytkownika o pomyślnym wykonaniu.

Wizualna personalizacja przycisków na Androidzie

Od Androida 7.0 deweloper może wpływać na wyświetlanie Notification Action przez ikony i kolory. Ikony muszą być monochromatyczne (kanał alfa), o rozmiarze 24x24 dp. Na iOS personalizacja przycisków jest ograniczona — używane są systemowe kolory i czcionki. Material Design zaleca grupowanie działań według priorytetu: najważniejsze działanie — pierwsze, destrukcyjne — ostatnie.

Często zadawane pytania

Ile działań można dodać do jednego powiadomienia?

Na Androidzie zaleca się nie więcej niż 3 działania, na iOS — do 4. Przekroczenie limitu powoduje, że część działań nie jest wyświetlana lub jest ukrywana w podmenu.

Jak dodać ikonę dla Notification Action na Androidzie?

Ikona jest przekazywana w NotificationCompat.Action.Builder jako zasób drawable. Ikona musi być monochromatyczna (kanał alfa), o rozmiarze 24x24 dp i zgodna z zaleceniami Material Design.

Czy Notification Action działają na zablokowanym ekranie?

Tak, jeśli powiadomienie jest wyświetlane na zablokowanym ekranie i ustawiono flagę visibility jako VISIBILITY_PUBLIC. Na iOS wymagana jest opcja .authenticationRequired dla działań wymagających autoryzacji.

Jak obsłużyć kliknięcie działania, gdy aplikacja została usunięta z pamięci?

Na Androidzie system odtwarza proces i dostarcza Intent. Na iOS system uruchamia aplikację w tle. Gwarantowane otrzymanie można zapewnić przez BroadcastReceiver na Androidzie i UNNotificationServiceExtension na iOS.

Czym różni się działanie na Androidzie od iOS pod względem doświadczenia użytkownika?

Na Androidzie działania są widoczne od razu pod powiadomieniem jako ikony. Na iOS działania są ukryte za długim naciśnięciem lub przesunięciem. Projekt UX powiadomień powinien uwzględniać te różnice platformowe.

Podsumowanie

  • Notification Action — przyciski i pola tekstowe w powiadomieniach push do szybkiej interakcji.
  • Na Androidzie działania tworzy się przez NotificationCompat.Action z PendingIntent.
  • Na iOS działania definiuje się przez UNNotificationAction z rejestracją kategorii.
  • Wprowadzanie tekstu implementuje się przez RemoteInput (Android) lub UNTextInputNotificationAction (iOS).
  • Maksymalna liczba działań — 3 dla Androida, 4 dla iOS.
  • Każde działanie powinno być logowane w systemie analitycznym do optymalizacji powiadomień.
  • Do niezawodnej obsługi użyj BroadcastReceiver na Androidzie i AppDelegate na iOS.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również