Notification Action — interactieve knoppen en invoervelden die direct in de pushmelding worden weergegeven en waarmee de gebruiker een actie kan uitvoeren zonder de app te openen. Dit is een belangrijk element van de gebruikerservaring dat de weg naar het doelscherm verkort. Volgens Android Developers, 2025 verhoogt Notification Action de gebruikersbetrokkenheid met tot 40% door wrijving bij interactie te verminderen.
Belangrijkste punten
Notification Action — is een interactief interface-element dat aan een pushmelding wordt toegevoegd om een specifieke actie uit te voeren. De gebruiker kan reageren op een bericht, een taak bevestigen of een specifiek scherm openen zonder de app te betreden. Acties worden weergegeven als knoppen onder de meldingstekst of in de uitgeklapte weergave bij het vegen.
Het hoofddoel van Notification Action is het verminderen van het aantal stappen dat de gebruiker nodig heeft om zijn doel te bereiken. In plaats van de app te openen en naar het gewenste scherm te navigeren, klikt de gebruiker op één knop. Onderzoek toont aan dat apps met interactieve meldingen een 25–40% hogere betrokkenheid hebben vergeleken met gewone meldingen.
Op Android worden Notification Actions weergegeven als pictogramknoppen in de compacte weergave en als tekstknoppen in de uitgebreide modus. Op iOS verschijnen acties bij lang indrukken van de melding of bij vegen naar links. Elk platform heeft zijn eigen aanbevelingen voor het aantal acties — Android adviseert maximaal 3, iOS maximaal 4.
| Platform | Max. acties | Wijze van weergave | Actietypen |
|---|---|---|---|
| Android | 3 | Pictogrammen + tekst | Knoppen, tekstinvoer |
| iOS | 4 | Lang indrukken / vegen | Knoppen, tekstinvoer |
Op Android worden Notification Actions gemaakt via NotificationCompat.Builder met behulp van de methode addAction(). Elke actie bevat een pictogram, tekst en een PendingIntent die wordt geactiveerd bij een klik. Vanaf Android 7.0 (API 24) wordt directe tekstinvoer via RemoteInput ondersteund.
Om een knop in een melding te maken, moet een PendingIntent worden gedefinieerd die wordt gestart bij een klik. PendingIntent kan een Activity openen, een Service of BroadcastReceiver starten. Het actiepictogram moet monochroom zijn en voldoen aan Material Design.
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("Bevestigingsverzoek")
.setContentText("Bevestig de uitvoering van de taak")
.addAction(R.drawable.ic_accept, "Bevestigen", acceptPendingIntent)
.build()
Voor scenario’s die tekstinvoer vereisen (bijvoorbeeld antwoorden op een bericht) biedt Android RemoteInput. De gebruiker voert tekst direct in de melding in en de app ontvangt deze zonder de Activity te openen. RemoteInput wordt ondersteund vanaf Android 7.0+ en vereist expliciete afhandeling in BroadcastReceiver of Service.
val remoteInput = RemoteInput.Builder("reply_input")
.setLabel("Voer antwoord in")
.build()
val replyAction = NotificationCompat.Action.Builder(
R.drawable.ic_reply, "Antwoorden", replyPendingIntent
)
.addRemoteInput(remoteInput)
.build()
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
.addAction(replyAction)
.build()
Bij een klik op een actie start het systeem de opgegeven PendingIntent. Om de ingevoerde tekst uit RemoteInput te verkrijgen, roept u RemoteInput.getResultsFromIntent(intent) aan. Het wordt aanbevolen acties af te handelen in IntentService of WorkManager om de UI-thread niet te blokkeren.
Op iOS worden Notification Actions geïmplementeerd via het UserNotifications-framework. De ontwikkelaar maakt actiecategorieën (UNNotificationCategory) en registreert deze bij het starten van de app. Elke actie wordt gedefinieerd door een UNNotificationAction-object met een unieke identificatie.
Om acties aan pushmeldingen op iOS toe te voegen, moet een categorie worden gemaakt die gerelateerde acties groepeert. De categorie wordt in de meldingspayload aangegeven via het veld category. Bij ontvangst van de melding toont het systeem de beschikbare acties uit de opgegeven categorie.
import UserNotifications
class NotificationSetup {
func registerNotificationCategories() {
let approveAction = UNNotificationAction(
identifier: "APPROVE_ACTION",
title: "Bevestigen",
options: [.foreground]
)
let declineAction = UNNotificationAction(
identifier: "DECLINE_ACTION",
title: "Afwijzen",
options: [.destructive]
)
let category = UNNotificationCategory(
identifier: "REQUEST_CATEGORY",
actions: [approveAction, declineAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
}
}
Wanneer de gebruiker op een actie klikt, roept het systeem de methode userNotificationCenter:didReceiveNotificationResponse aan in de delegate van UNUserNotificationCenter. response.actionIdentifier bevat de identificatie van de uitgevoerde actie. Voor tekstinvoer wordt UNTextInputNotificationAction gebruikt, die de door de gebruiker ingevoerde tekst levert.
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 wordt geclassificeerd op basis van het interactietype en het gebruiksscenario. De juiste keuze van het actietype heeft directe invloed op de gebruikerservaring en de conversie naar de doelactie.
Het meest voorkomende type — een knop die de app op een specifiek scherm opent. Op Android wordt PendingIntent.getActivity() gebruikt, op iOS — de optie .foreground voor UNNotificationAction. Toegepast voor acties die een volledige interface vereisen, bijvoorbeeld het bekijken van orderdetails.
Acties die worden uitgevoerd zonder de app te openen. Op Android wordt PendingIntent.getBroadcast() of PendingIntent.getService() gebruikt. Op iOS — de optie .authenticationRequired of zonder .foreground. Voorbeelden: een taak als voltooid markeren, een post leuk vinden, toevoegen aan favorieten.
Stelt de gebruiker in staat tekst direct in de melding in te voeren. Op Android geïmplementeerd via RemoteInput, op iOS via UNTextInputNotificationAction. Gebruikt voor antwoorden op berichten, opmerkingen, het invoeren van eenmalige bevestigingscodes.
Acties die gegevens onomkeerbaar wijzigen — verwijderen, weigeren, blokkeren. Op Android worden ze visueel onderscheiden (rode kleur in sommige systemen), op iOS vereisen ze de optie .destructive. Het wordt aanbevolen om bevestiging te vragen voor destructieve acties, bijvoorbeeld via een extra dialoog of een tweede klik.
Een aparte klasse acties — tekstinvoer rechtstreeks vanuit de melding. Op Android geïmplementeerd via RemoteInput in combinatie met PendingIntent. Op iOS wordt UNTextInputNotificationAction gebruikt, dat is afgeleid van UNNotificationAction. Dergelijke acties worden gebruikt voor snelle antwoorden in messengers, het invoeren van promotiecodes, het invullen van feedbackformulieren of het beoordelen van de servicekwaliteit. De ingevoerde tekst wordt samen met de actie-ID aan de app doorgegeven. Voor een correcte afhandeling van tekstinvoer op beide platformen moeten de ingevoerde gegevens worden geparseerd en gevalideerd voordat de doelactie wordt uitgevoerd.
Correcte afhandeling van Notification Action is cruciaal voor analyse en gebruikerservaring. Elke klik moet worden gelogd en de actie moet betrouwbaar worden uitgevoerd, zelfs als de app was gesloten.
Volg elke klik op Notification Action via het analysesysteem. Firebase Analytics, Mixpanel of Yandex.Metrica maken het mogelijk de actie-ID, het tijdstip van de klik en de context van de melding vast te leggen. Deze gegevens helpen bij het optimaliseren van de meldingsstrategie en het verhogen van de betrokkenheid. A/B-testen met verschillende actiesets helpen bij het bepalen van de meest effectieve interactiescenario’s met de gebruiker.
Als de app is gesloten, levert het systeem nog steeds Intent of UNNotificationResponse bij een klik op een actie. Op Android gebruikt u BroadcastReceiver voor gegarandeerde afhandeling. Op iOS start het systeem de app op de achtergrond en geeft het antwoord door aan de delegate. Voor kritieke acties (betalingsbevestiging, autorisatie) voegt u een herhaalpogingmechanisme en een melding aan de gebruiker over succesvolle uitvoering toe.
Vanaf Android 7.0 kan de ontwikkelaar de weergave van Notification Action beïnvloeden via pictogrammen en kleuren. Pictogrammen moeten monochroom zijn (alfa-kanaal), met een grootte van 24x24 dp. Op iOS is de aanpassing van knoppen beperkt — er worden systeemkleuren en -lettertypen gebruikt. Material Design raadt aan acties te groeperen op prioriteit: de belangrijkste actie eerst, destructieve als laatste.
Veelgestelde vragen
Op Android worden maximaal 3 acties aanbevolen, op iOS tot 4. Het overschrijden van de limiet leidt ertoe dat sommige acties niet worden weergegeven of in een submenu worden verborgen.
Het pictogram wordt doorgegeven aan NotificationCompat.Action.Builder als een drawable-bron. Het pictogram moet monochroom zijn (alfa-kanaal), met een grootte van 24x24 dp en voldoen aan de Material Design-richtlijnen.
Ja, als de melding op het vergrendelde scherm wordt weergegeven en de visibility-vlag is ingesteld op VISIBILITY_PUBLIC. Op iOS is de optie .authenticationRequired vereist voor acties die autorisatie nodig hebben.
Op Android hercreëert het systeem het proces en levert de Intent af. Op iOS start het systeem de app op de achtergrond. Levering kan worden gegarandeerd met BroadcastReceiver op Android en UNNotificationServiceExtension op iOS.
Op Android zijn acties direct onder de melding zichtbaar als pictogrammen. Op iOS zijn acties verborgen achter lang indrukken of vegen. UX-ontwerp van meldingen moet rekening houden met deze platformverschillen.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook