Notification Action — mga interactive na button at input field na direktang lumalabas sa push notification at nagpapahintulot sa user na magsagawa ng aksyon nang hindi binubuksan ang app. Ito ay isang pangunahing elemento ng karanasan ng user na nagpapaikli sa daan patungo sa target na screen. Ayon sa Android Developers, 2025, ang Notification Action ay nagpapataas ng pakikilahok ng user ng hanggang 40% sa pamamagitan ng pagbawas ng alitan sa interaksyon.
Mga pangunahing punto
Notification Action — ay isang interactive na elemento ng interface na idinaragdag sa push notification upang magsagawa ng isang tiyak na aksyon. Maaaring tumugon ang user sa isang mensahe, kumpirmahin ang isang gawain, o buksan ang isang partikular na screen nang hindi pumapasok sa app. Ang mga aksyon ay ipinapakita bilang mga button sa ilalim ng teksto ng notification o sa pinalawak na view kapag nag-swipe.
Ang pangunahing layunin ng Notification Action ay bawasan ang bilang ng mga hakbang na kailangan ng user upang maabot ang kanyang layunin. Sa halip na buksan ang app at mag-navigate sa nais na screen, ang user ay nag-click ng isang button. Ipinapakita ng pananaliksik na ang mga app na may interactive na notification ay may 25–40% na mas mataas na antas ng pakikilahok kumpara sa mga ordinaryong notification.
Sa Android, ang Notification Action ay ipinapakita bilang mga icon-button sa compact view at bilang text button sa pinalawak na mode. Sa iOS, lumilitaw ang mga aksyon sa pamamagitan ng matagal na pagpindot sa notification o pag-swipe pakaliwa. Bawat platform ay may sariling rekomendasyon tungkol sa bilang ng mga aksyon — Android ay nagrerekomenda ng hindi hihigit sa 3, iOS — hindi hihigit sa 4.
| Platform | Max. aksyon | Paraan ng pagpapakita | Mga uri ng aksyon |
|---|---|---|---|
| Android | 3 | Mga icon + teksto | Mga button, text input |
| iOS | 4 | Matagal na pagpindot / pag-swipe | Mga button, text input |
Sa Android, ang Notification Action ay nilikha sa pamamagitan ng NotificationCompat.Builder gamit ang addAction() method. Bawat aksyon ay naglalaman ng icon, teksto, at PendingIntent na nagti-trigger kapag na-click. Mula sa Android 7.0 (API 24), suportado ang direktang text input sa pamamagitan ng RemoteInput.
Upang lumikha ng button sa notification, kailangang tukuyin ang isang PendingIntent na ilulunsad kapag na-click. Maaaring magbukas ang PendingIntent ng Activity, magpatakbo ng Service, o BroadcastReceiver. Ang icon ng aksyon ay dapat na monochrome at sumunod sa 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("Kahilingan ng kumpirmasyon")
.setContentText("Kumpirmahin ang paggawa ng gawain")
.addAction(R.drawable.ic_accept, "Kumpirmahin", acceptPendingIntent)
.build()
Para sa mga senaryo na nangangailangan ng text input (halimbawa, pagtugon sa mensahe), nagbibigay ang Android ng RemoteInput. Ang user ay naglalagay ng teksto nang direkta sa notification, at natatanggap ito ng app nang hindi binubuksan ang Activity. Ang RemoteInput ay suportado sa Android 7.0+ at nangangailangan ng tahasang pangangasiwa sa BroadcastReceiver o Service.
val remoteInput = RemoteInput.Builder("reply_input")
.setLabel("Ilagay ang sagot")
.build()
val replyAction = NotificationCompat.Action.Builder(
R.drawable.ic_reply, "Tumugon", replyPendingIntent
)
.addRemoteInput(remoteInput)
.build()
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
.addAction(replyAction)
.build()
Kapag na-click ang isang aksyon, inilulunsad ng system ang tinukoy na PendingIntent. Upang makuha ang tekstong ipinasok mula sa RemoteInput, tawagan ang RemoteInput.getResultsFromIntent(intent). Inirerekomenda na pangasiwaan ang mga aksyon sa IntentService o WorkManager upang hindi harangan ang UI thread.
Sa iOS, ang Notification Action ay ipinapatupad sa pamamagitan ng UserNotifications framework. Gumagawa ang developer ng mga kategorya ng aksyon (UNNotificationCategory) at nagrerehistro ng mga ito sa pagsisimula ng app. Bawat aksyon ay tinutukoy ng isang UNNotificationAction object na may natatanging identifier.
Upang magdagdag ng mga aksyon sa push notification sa iOS, kailangang lumikha ng isang kategorya na nag-grupo ng mga kaugnay na aksyon. Ang kategorya ay tinutukoy sa payload ng notification sa pamamagitan ng field na category. Kapag natanggap ang notification, ipinapakita ng system ang mga available na aksyon mula sa tinukoy na kategorya.
import UserNotifications
class NotificationSetup {
func registerNotificationCategories() {
let approveAction = UNNotificationAction(
identifier: "APPROVE_ACTION",
title: "Kumpirmahin",
options: [.foreground]
)
let declineAction = UNNotificationAction(
identifier: "DECLINE_ACTION",
title: "Tanggihan",
options: [.destructive]
)
let category = UNNotificationCategory(
identifier: "REQUEST_CATEGORY",
actions: [approveAction, declineAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
}
}
Kapag nag-click ang user sa isang aksyon, tinatawagan ng system ang method na userNotificationCenter:didReceiveNotificationResponse sa delegate ng UNUserNotificationCenter. Ang response.actionIdentifier ay naglalaman ng identifier ng isinagawang aksyon. Para sa text input, ginagamit ang UNTextInputNotificationAction na nagbibigay ng tekstong ipinasok ng user.
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()
}
}
Ang Notification Action ay inuuri ayon sa uri ng interaksyon at senaryo ng paggamit. Ang tamang pagpili ng uri ng aksyon ay direktang nakakaapekto sa karanasan ng user at conversion sa target na aksyon.
Ang pinakakaraniwang uri — button na nagbubukas ng app sa isang partikular na screen. Sa Android ginagamit ang PendingIntent.getActivity(), sa iOS — ang opsyon na .foreground para sa UNNotificationAction. Ginagamit para sa mga aksyon na nangangailangan ng buong interface, halimbawa pagtingin sa mga detalye ng order.
Mga aksyon na isinasagawa nang hindi binubuksan ang app. Sa Android ginagamit ang PendingIntent.getBroadcast() o PendingIntent.getService(). Sa iOS — opsyon na .authenticationRequired o walang .foreground. Mga halimbawa: pagmarka ng gawain bilang natapos, pag-like ng post, pagdagdag sa mga paborito.
Nagpapahintulot sa user na maglagay ng teksto nang direkta sa notification. Sa Android ipinapatupad sa pamamagitan ng RemoteInput, sa iOS — sa pamamagitan ng UNTextInputNotificationAction. Ginagamit para sa pagtugon sa mga mensahe, komento, paglalagay ng mga one-time confirmation code.
Mga aksyon na hindi na mababawi na nagbabago ng data — pagtanggal, pagtanggi, pag-block. Sa Android ay naiiba ang visual (pulang kulay sa ilang sistema), sa iOS ay nangangailangan ng opsyon na .destructive. Inirerekomenda ang paghingi ng kumpirmasyon para sa mga mapanirang aksyon, halimbawa sa pamamagitan ng karagdagang dialog o pangalawang pag-click.
Isang hiwalay na klase ng mga aksyon — text input nang direkta mula sa notification. Sa Android ipinapatupad sa pamamagitan ng RemoteInput kasama ng PendingIntent. Sa iOS ginagamit ang UNTextInputNotificationAction na nagmamana sa UNNotificationAction. Ang ganitong mga aksyon ay ginagamit para sa mabilis na tugon sa mga messenger, paglalagay ng mga promo code, pagpuno ng mga feedback form, o pagsusuri ng kalidad ng serbisyo. Ang tekstong ipinasok ay ipinapadala sa app kasama ng identifier ng aksyon. Para sa tamang pangangasiwa ng text input sa parehong platform, kailangang ipatupad ang pag-parse ng ipinasok na data at validation bago isagawa ang target na aksyon.
Ang tamang pangangasiwa ng Notification Action ay kritikal para sa analytics at karanasan ng user. Bawat pag-click ay dapat i-log, at ang aksyon ay dapat isagawa nang maaasahan, kahit na sarado ang app.
Subaybayan ang bawat pag-click sa Notification Action sa pamamagitan ng analytics system. Ang Firebase Analytics, Mixpanel, o Yandex.Metrica ay nagpapahintulot ng pagtatala ng identifier ng aksyon, oras ng pag-click, at konteksto ng notification. Ang datos na ito ay tumutulong sa pag-optimize ng estratehiya ng notification at pagtaas ng pakikilahok. Ang A/B testing na may iba’t ibang set ng aksyon ay tumutulong sa pagtukoy ng pinakamabisang senaryo ng interaksyon sa user.
Kung sarado ang app, ipinapadala pa rin ng system ang Intent o UNNotificationResponse kapag nag-click sa isang aksyon. Sa Android, gamitin ang BroadcastReceiver para sa garantisadong pangangasiwa. Sa iOS, inilulunsad ng system ang app sa background at ipinapadala ang tugon sa delegate. Para sa mga kritikal na aksyon (kumpirmasyon ng pagbabayad, awtorisasyon), magdagdag ng mekanismo ng pagsubok muli at abiso sa user tungkol sa matagumpay na pagpapatupad.
Mula sa Android 7.0, ang developer ay maaaring makaapekto sa pagpapakita ng Notification Action sa pamamagitan ng mga icon at kulay. Ang mga icon ay dapat na monochrome (alpha channel), may sukat na 24x24 dp. Sa iOS, limitado ang pagpapasadya ng button — ginagamit ang mga system color at font. Inirerekomenda ng Material Design ang paggrupo ng mga aksyon ayon sa priyoridad: pinakamahalagang aksyon una, mapanira ang huli.
Mga madalas itanong
Sa Android inirerekomenda ang hindi hihigit sa 3 aksyon, sa iOS hanggang 4. Ang paglampas sa limitasyon ay nagiging sanhi na ang ilang aksyon ay hindi naipapakita o nakatago sa submenu.
Ang icon ay ipinapasa sa NotificationCompat.Action.Builder bilang drawable resource. Ang icon ay dapat monochrome (alpha channel), may sukat na 24x24 dp, at sumunod sa mga alituntunin ng Material Design.
Oo, kung ang notification ay ipinapakita sa naka-lock na screen at ang visibility flag ay nakatakda sa VISIBILITY_PUBLIC. Sa iOS, kinakailangan ang opsyon na .authenticationRequired para sa mga aksyon na nangangailangan ng awtorisasyon.
Sa Android, muling ginagawa ng system ang proseso at inihahatid ang Intent. Sa iOS, inilulunsad ng system ang app sa background. Maaaring garantisahin ang paghahatid gamit ang BroadcastReceiver sa Android at UNNotificationServiceExtension sa iOS.
Sa Android, ang mga aksyon ay agad na nakikita sa ilalim ng notification bilang mga icon. Sa iOS, ang mga aksyon ay nakatago sa likod ng matagal na pagpindot o pag-swipe. Ang UX na disenyo ng mga notification ay dapat isaalang-alang ang mga pagkakaibang ito ng platform.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.