Interactive Notification — este o notificare push cu elemente interactive care permite efectuarea unei acțiuni fără a deschide aplicația. Potrivit Apple Human Interface Guidelines (2025), astfel de notificări reduc numărul de pași până la acțiunea țintă cu 40%. Butoanele de acțiune și câmpurile de introducere oferă utilizatorului posibilitatea de a răspunde la un mesaj, de a plăti o abonare sau de a confirma o rezervare direct din panoul de notificări, fără a deschide aplicația.
Principalele
Interactive Notification — este un format extins de notificare push care conține elemente de control interactive: butoane, comutatoare și câmpuri de introducere text. Spre deosebire de o notificare standard care doar informează, cea interactivă permite utilizatorului să efectueze acțiunea țintă direct din panoul de notificări sau ecranul de blocare. Potrivit Google Material Design (2025), notificările interactive sunt procesate de sistemul de operare fără a porni procesul principal al aplicației — aceasta economisește bateria și accelerează răspunsul. Dezvoltatorul definește setul de acțiuni prin categorii pe iOS și canale pe Android, iar sistemul le afișează în funcție de context.
Fiecare notificare interactivă constă din trei niveluri: conținut principal (titlu, corp), acțiuni (butoane) și introducere text opțională. Pe iOS aceste componente sunt combinate prin UNNotificationCategory, iar pe Android — prin NotificationCompat.Action.Builder. Sistemul afișează butoanele sub textul notificării în formă restrânsă sau extinsă în funcție de versiunea sistemului de operare și lungimea textului. Utilizatorul vede acțiunile disponibile imediat după primirea notificării și poate efectua una dintre ele fără a intra în aplicație.
Mecanismul de funcționare al Interactive Notification se împarte în două faze: înregistrarea categoriilor la pornirea aplicației și procesarea acțiunii la apăsarea butonului de către utilizator. În faza de înregistrare, dezvoltatorul creează obiecte de categorii cu un set de acțiuni — fiecare acțiune are un identificator, un titlu și opțiuni. La primirea notificării push, sistemul o potrivește cu categoria înregistrată după câmpul categoryIdentifier și adaugă automat butoanele corespunzătoare. Când utilizatorul apasă un buton, sistemul apelează delegatul UNUserNotificationCenter sau PendingIntent pe Android cu identificatorul acțiunii și transmite rezultatul înapoi aplicației. Potrivit WWDC 2024, timpul de procesare a unei acțiuni interactive pe iOS nu depășește 200 ms cu o configurare corectă.
Notificările interactive se împart în trei tipuri principale după modul de interacțiune: cu butoane, text și multimedia. Fiecare tip își rezolvă propria sarcină și se aplică în scenarii specifice. Alegerea tipului depinde de context — cu cât utilizatorul are nevoie de mai puțini pași, cu atât conversia este mai mare. Apple și Google recomandă utilizarea butoanelor pentru confirmare, a câmpului de introducere pentru răspunsuri și a media pentru previzualizarea conținutului.
Cel mai răspândit tip — notificarea cu unul sau mai multe butoane, fiecare executând o acțiune predeterminată. De exemplu, butoanele «Acceptă» și «Respinge» pentru un eveniment din calendar, «Like» și «Răspunde» pentru un mesaj. Pe iOS sunt acceptate până la patru butoane, pe Android — până la trei. Butoanele pot fi grupate după prioritate: normale și distructive (cu confirmare). Apple recomandă nu mai mult de două butoane principale pentru confortul utilizatorului pe ecranul de blocare.
RemoteInput — tehnologia care permite utilizatorului să introducă text direct în notificare fără a deschide aplicația. Pe iOS se folosește UNTextInputNotificationAction, pe Android — RemoteInput.Builder cu o cheie pentru extragerea textului introdus. Cel mai des utilizată în aplicațiile de mesagerie pentru răspuns rapid la un mesaj. Textul introdus este transmis aplicației prin serviciul de notificări sau un handler local. Limitare — textul nu poate conține formatare, doar string simplu.
Notificările cu atașamente multimedia permit afișarea imaginilor, audio și video direct în panou. Pe iOS acest lucru se realizează prin UNNotificationAttachment, pe Android — prin NotificationCompat.MessagingStyle cu BigPictureStyle. Media este încărcată de serverul furnizorului de push și transmisă împreună cu notificarea ca atașament. Dimensiunea atașamentului este limitată — Apple recomandă nu mai mult de 10 MB, Google — nu mai mult de 1 MB pentru imagini. Conținutul multimedia sporește caracterul informativ al notificărilor pentru știri, marketplace-uri și rețele sociale.
Pe iOS, Interactive Notification se implementează prin framework-ul UserNotifications utilizând UNNotificationCategory și UNNotificationAction. Aplicația înregistrează categoriile la pornire, iar la primirea notificării sistemul afișează automat butoanele corespunzătoare. Pentru procesarea acțiunilor este necesară implementarea metodei userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler. Mai jos este dat un exemplu de înregistrare a unei categorii cu buton și introducere text în Swift.
import UserNotifications
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "Răspunde",
options: [.authenticationRequired],
textInputButtonTitle: "Trimite",
textInputPlaceholder: "Introduceți mesajul..."
)
let category = UNNotificationCategory(
identifier: "message",
actions: [replyAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
După apelarea setNotificationCategories, sistemul salvează categoriile și le folosește pentru toate notificările ulterioare. Codul trebuie apelat la fiecare pornire a aplicației pentru a sincroniza categoriile cu noile versiuni. Procesarea răspunsului se efectuează în delegatul centrului de notificări — aplicația primește identificatorul acțiunii și textul introdus pentru procesare ulterioară.
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completion: @escaping VoidBlock
) {
if response.actionIdentifier == "reply" {
let textResponse = response as! UNTextInputNotificationResponse
let message = textResponse.userText
sendMessage(message)
}
completion()
}
Metoda userNotificationCenter este apelată de sistem după apăsarea butonului sau trimiterea textului de către utilizator. În interiorul handler-ului se verifică actionIdentifier — dacă coincide cu identificatorul înregistrat, aplicația extrage textul introdus din userText și îl trimite pe server. Pentru butoanele obișnuite fără introducere text se folosește UNNotificationResponse fără conversie.
Pe Android, notificările interactive se creează prin clasa NotificationCompat cu metodele addAction și RemoteInput. Spre deosebire de iOS, Android nu necesită înregistrarea prealabilă a categoriilor — acțiunile se adaugă direct la fiecare notificare prin Builder. Aceasta oferă mai multă flexibilitate: fiecare notificare poate avea un set unic de butoane. Mai jos este dat un exemplu de notificare cu buton de răspuns în Java utilizând RemoteInput.
RemoteInput remoteInput = new RemoteInput.Builder("key_reply")
.setLabel("Răspunde")
.build();
PendingIntent replyIntent = PendingIntent.getBroadcast(
this, 1001,
new Intent("ACTION_REPLY"),
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(
R.drawable.ic_reply,
"Răspunde", replyIntent
)
.addRemoteInput(remoteInput)
.build();
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, "messages")
.setContentTitle("Mesaj nou")
.setContentText("Salut! Ce faci?")
.setSmallIcon(R.drawable.ic_notification)
.addAction(action);
NotificationManagerCompat.from(this)
.notify(100, builder.build());
Elementul cheie este RemoteInput, care leagă câmpul de introducere de acțiune. La apăsarea butonului «Răspunde», sistemul deschide un dialog de introducere text în interiorul notificării. După trimitere, textul este transmis prin Intent către BroadcastReceiver sau Activity conform PendingIntent specificat. Pentru a obține textul în receptor se folosește RemoteInput.getResultsFromIntent(intent) cu cheia «key_reply».
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
CharSequence reply = results.getCharSequence("key_reply");
if (reply != null) {
sendReplyToServer(reply.toString());
}
}
Metoda getResultsFromIntent extrage textul introdus de utilizator din Intent transmis de sistem la trimiterea răspunsului. Rezultatul este returnat ca CharSequence, care este convertit în șir pentru trimiterea pe server. Dacă utilizatorul a închis dialogul de introducere fără a trimite, results va fi gol — acest lucru trebuie luat în considerare la procesare. Această abordare permite un răspuns rapid fără a porni Activity.
Interactive Notification se aplică în aplicații de orice tip unde este necesară o acțiune rapidă a utilizatorului. Cele mai eficiente scenarii — aplicații de mesagerie pentru răspuns la mesaj, e-commerce pentru confirmarea comenzii și calendare pentru acceptarea invitației. Potrivit Localytics (2025), aplicațiile cu notificări interactive arată o retenție cu 28% mai mare în ziua a 7-a. Mai jos este prezentat un tabel cu scenariile populare și caracteristicile platformelor.
| Scenariu | Acțiuni | Platformă |
|---|---|---|
| Mesagerie | Răspunde cu text, Like | iOS + Android |
| E-commerce | Confirmă, amână, anulează | iOS + Android |
| Calendar | Acceptă, respinge, poate | iOS |
| Știri | Salvează, distribuie, deschide | Android |
| Rezervare | Confirmă, reprogramează, anulează | iOS + Android |
La proiectarea notificărilor interactive este important să se țină cont de limitare — utilizatorul poate efectua acțiunea o singură dată. După apăsarea butonului, notificarea dispare sau trece în starea «executat». Prin urmare, fiecare acțiune trebuie să fie ireversibilă sau să necesite confirmare în al doilea pas.
Întrebări frecvente
Interactive Notification — o notificare push cu butoane, câmp de introducere sau atașament multimedia care permite utilizatorului să efectueze o acțiune fără a deschide aplicația. Acceptată pe iOS prin UserNotifications și pe Android prin NotificationCompat.
Notificarea obișnuită doar informează — utilizatorul apasă și deschide aplicația. Notificarea interactivă conține butoane sau câmp de introducere, iar acțiunea se execută direct în panou. Aceasta scurtează calea până la acțiunea țintă și reduce încărcarea aplicației.
Pe iOS sunt acceptate până la patru butoane, pe Android — până la trei. Pe Android, două butoane sunt afișate pe panoul de notificări, al treilea este disponibil în meniul derulant. Apple recomandă nu mai mult de două butoane principale pentru confortul utilizatorului pe ecranul de blocare.
Pe iOS se folosește UNTextInputNotificationAction, pe Android — RemoteInput.Builder cu o cheie. Utilizatorul introduce textul într-o fereastră de dialog din interiorul notificării, iar aplicația îl primește prin delegat sau Intent fără a porni Activity.
Primirea notificării push necesită conexiune la internet, dar interactivitatea în sine (afișarea butoanelor, introducerea textului) funcționează offline. Transmiterea rezultatului pe server poate fi amânată până la restabilirea conexiunii.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și