Notification Action — interaktív gombok és beviteli mezők, amelyek közvetlenül a push értesítésben jelennek meg, és lehetővé teszik a felhasználó számára, hogy az alkalmazás megnyitása nélkül végezzen el egy műveletet. Ez a felhasználói élmény kulcseleme, amely lerövidíti a cél képernyőhöz vezető utat. A Android Developers, 2025 adatai szerint a Notification Action akár 40%-kal is növeli a felhasználói elköteleződést az interakció súrlódásának csökkentésével.
Főbb pontok
Notification Action — egy interaktív felületelem, amelyet push értesítéshez adnak hozzá egy adott művelet végrehajtásához. A felhasználó válaszolhat üzenetre, megerősíthet egy feladatot, vagy megnyithat egy adott képernyőt anélkül, hogy belépne az alkalmazásba. A műveletek gombokként jelennek meg az értesítés szövege alatt, vagy kibővített nézetben húzáskor.
A Notification Action fő célja, hogy csökkentse a felhasználó által a cél eléréséhez szükséges lépések számát. Ahelyett, hogy megnyitná az alkalmazást és a kívánt képernyőre navigálna, a felhasználó egyetlen gombra kattint. A kutatások azt mutatják, hogy az interaktív értesítésekkel rendelkező alkalmazások 25–40%-kal magasabb elköteleződési szintet érnek el az egyszerű értesítésekhez képest.
Androidon a Notification Action ikon-gombokként jelenik meg az összecsukott nézetben és szöveges gombokként a kibővített módban. iOS-en a műveletek az értesítés hosszú megnyomásával vagy balra húzással jelennek meg. Minden platformnak megvannak a saját ajánlásai a műveletek számára — Android legfeljebb 3-at, iOS legfeljebb 4-et ajánl.
| Platform | Max. művelet | Megjelenítés módja | Művelettípusok |
|---|---|---|---|
| Android | 3 | Ikonok + szöveg | Gombok, szövegbevitel |
| iOS | 4 | Hosszú nyomás / húzás | Gombok, szövegbevitel |
Androidon a Notification Action a NotificationCompat.Builder segítségével, az addAction() metódus használatával jön létre. Minden művelet tartalmaz egy ikont, szöveget és egy PendingIntent-et, amely kattintáskor aktiválódik. Az Android 7.0-tól (API 24) kezdve a RemoteInput-on keresztül történő közvetlen szövegbevitel is támogatott.
Egy gomb létrehozásához az értesítésben meg kell határozni egy PendingIntent-et, amely kattintáskor elindul. A PendingIntent megnyithat egy Activity-t, elindíthat egy Service-t vagy BroadcastReceiver-t. A művelet ikonjának monokrómnak kell lennie és meg kell felelnie a Material Design-nak.
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("Megerősítési kérelem")
.setContentText("Erősítse meg a feladat végrehajtását")
.addAction(R.drawable.ic_accept, "Megerősítés", acceptPendingIntent)
.build()
Azokban a forgatókönyvekben, ahol szövegbevitelre van szükség (például üzenetre válasz), az Android RemoteInput-ot biztosít. A felhasználó közvetlenül az értesítésbe írja be a szöveget, és az alkalmazás anélkül kapja meg, hogy megnyitná az Activity-t. A RemoteInput Android 7.0+-tól támogatott, és explicit kezelést igényel a BroadcastReceiver-ben vagy Service-ben.
val remoteInput = RemoteInput.Builder("reply_input")
.setLabel("Írja be a választ")
.build()
val replyAction = NotificationCompat.Action.Builder(
R.drawable.ic_reply, "Válasz", replyPendingIntent
)
.addRemoteInput(remoteInput)
.build()
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
.addAction(replyAction)
.build()
Amikor a felhasználó egy műveletre kattint, a rendszer elindítja a megadott PendingIntent-et. A RemoteInput-ból beírt szöveg lekéréséhez hívja a RemoteInput.getResultsFromIntent(intent) függvényt. Ajánlott a műveleteket IntentService-ben vagy WorkManager-ben kezelni, hogy ne blokkolja az UI szálat.
iOS-en a Notification Action a UserNotifications keretrendszeren keresztül valósul meg. A fejlesztő műveletkategóriákat (UNNotificationCategory) hoz létre és regisztrálja őket az alkalmazás indításakor. Minden műveletet egy UNNotificationAction objektum határoz meg egyedi azonosítóval.
Ahhoz, hogy műveleteket adjon hozzá a push értesítésekhez iOS-en, létre kell hoznia egy kategóriát, amely csoportosítja a kapcsolódó műveleteket. A kategóriát az értesítés adatcsomagjában a category mező segítségével adják meg. Az értesítés fogadásakor a rendszer megjeleníti a megadott kategóriából elérhető műveleteket.
import UserNotifications
class NotificationSetup {
func registerNotificationCategories() {
let approveAction = UNNotificationAction(
identifier: "APPROVE_ACTION",
title: "Megerősítés",
options: [.foreground]
)
let declineAction = UNNotificationAction(
identifier: "DECLINE_ACTION",
title: "Elutasítás",
options: [.destructive]
)
let category = UNNotificationCategory(
identifier: "REQUEST_CATEGORY",
actions: [approveAction, declineAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
}
}
Amikor a felhasználó egy műveletre kattint, a rendszer meghívja a userNotificationCenter:didReceiveNotificationResponse metódust az UNUserNotificationCenter delegáltjában. A response.actionIdentifier tartalmazza a végrehajtott művelet azonosítóját. Szövegbevitelhez az UNTextInputNotificationAction használható, amely biztosítja a felhasználó által beírt szöveget.
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 az interakció típusa és a használati forgatókönyv szerint osztályozható. A művelettípus helyes megválasztása közvetlenül befolyásolja a felhasználói élményt és a célműveletre való konverziót.
A leggyakoribb típus — egy gomb, amely az alkalmazást egy adott képernyőn nyitja meg. Androidon a PendingIntent.getActivity() használatos, iOS-en a .foreground opció az UNNotificationAction számára. Olyan műveleteknél alkalmazzák, amelyek teljes interfászt igényelnek, például rendelési részletek megtekintése.
Olyan műveletek, amelyek az alkalmazás megnyitása nélkül hajthatók végre. Androidon PendingIntent.getBroadcast() vagy PendingIntent.getService() használatos. iOS-en — .authenticationRequired opció vagy .foreground nélkül. Példák: feladat elkészültként való megjelölése, bejegyzés kedvelése, hozzáadás a kedvencekhez.
Lehetővé teszi a felhasználó számára, hogy közvetlenül az értesítésbe írjon be szöveget. Androidon RemoteInput-on keresztül, iOS-en az UNTextInputNotificationAction segítségével valósul meg. Üzenetekre adott válaszokhoz, hozzászólásokhoz, egyszeri megerősítő kódok beviteléhez használható.
Olyan műveletek, amelyek visszafordíthatatlanul módosítják az adatokat — törlés, elutasítás, blokkolás. Androidon vizuálisan kiemelkednek (piros szín néhány rendszerben), iOS-en a .destructive opciót igénylik. Javasolt megerősítést kérni a romboló műveletekhez, például egy további párbeszédablakon vagy második kattintással.
A műveletek külálló osztálya — szövegbevitel közvetlenül az értesítésből. Androidon RemoteInput segítségével, PendingIntent-tel kombinálva valósul meg. iOS-en az UNNotificationAction-ből származó UNTextInputNotificationAction használatos. Az ilyen műveleteket gyors válaszokhoz használják üzenetküldőkben, promóciós kódok beviteléhez, visszajelzési űrlapok kitöltéséhez vagy a szolgáltatás minőségének értékeléséhez. A beírt szöveget a rendszer a művelet azonosítójával együtt továbbítja az alkalmazásnak. A szövegbevitel helyes kezeléséhez mindkét platformon implementálni kell a beírt adatok elemzését és érvényesítését a célművelet végrehajtása előtt.
A Notification Action helyes kezelése kritikus fontosságú a analitika és a felhasználói élmény szempontjából. Minden kattintást naplózni kell, és a műveletet megbízhatóan végre kell hajtani, még akkor is, ha az alkalmazás be volt zárva.
Kövesse a Notification Action minden kattintását az analitikai rendszeren keresztül. A Firebase Analytics, Mixpanel vagy Yandex.Metrica lehetővé teszi a művelet azonosítójának, a kattintás időpontjának és az értesítés kontextusának rögzítését. Ezek az adatok segítenek optimalizálni az értesítési stratégiát és növelni az elköteleződést. Az A/B tesztelés különböző műveletkészletekkel segít meghatározni a leghatékonyabb felhasználói interakciós forgatókönyveket.
Ha az alkalmazás be van zárva, a rendszer továbbra is elküldi az Intentet vagy UNNotificationResponse-t a műveletre történő kattintáskor. Androidon használjon BroadcastReceiver-t a garantált kezeléshez. iOS-en a rendszer elindítja az alkalmazást a háttérben és továbbítja a választ a delegáltnak. Kritikus műveleteknél (fizetés megerősítése, hitelesítés) adjon hozzá újrapróbálkózási mechanizmust és értesítést a felhasználó számára a sikeres végrehajtásról.
Az Android 7.0-tól kezdve a fejlesztő befolyásolhatja a Notification Action megjelenítését ikonok és színek segítségével. Az ikonoknak monokrómnak kell lenniük (alfa csatorna), méretük 24x24 dp. iOS-en a gombok testreszabása korlátozott — rendszerszínek és betűtípusok használhatók. A Material Design a műveletek prioritás szerinti csoportosítását ajánlja: a legfontosabb művelet elsőként, a rombolók utoljára.
Gyakran ismételt kérdések
Androidon legfeljebb 3 művelet ajánlott, iOS-en legfeljebb 4. A korlát túllépése oda vezet, hogy néhány művelet nem jelenik meg, vagy elrejtődik az almenüben.
Az ikon a NotificationCompat.Action.Builder számára drawable erőforrásként kerül átadásra. Az ikonnak monokrómnak (alfa csatorna), 24x24 dp méretűnek kell lennie, és meg kell felelnie a Material Design irányelveinek.
Igen, ha az értesítés a lezárt képernyőn jelenik meg, és a visibility jelző VISIBILITY_PUBLIC értékre van állítva. iOS-en a .authenticationRequired opció szükséges a hitelesítést igénylő műveletekhez.
Androidon a rendszer újra létrehozza a folyamatot és kézbesíti az Intentet. iOS-en a rendszer elindítja az alkalmazást a háttérben. A kézbesítés garantálható a BroadcastReceiver segítségével Androidon és az UNNotificationServiceExtension segítségével iOS-en.
Androidon a műveletek azonnal láthatók az értesítés alatt ikonként. iOS-en a műveletek el vannak rejtve a hosszú nyomás vagy húzás mögött. Az értesítések UX-tervezésének figyelembe kell vennie ezeket a platformkülönbségeket.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is