Notification Action — push bildirishnomada to'g'ridan-to'g'ri ko'rsatiladigan va foydalanuvchiga ilovani ochmasdan harakatni bajarishga imkon beradigan interaktiv tugmalar va matn maydonlari. Bu foydalanuvchi tajribasining asosiy elementi bo'lib, maqsadli ekranga borish yo'lini qisqartiradi. Android Developers, 2025 ma'lumotlariga ko'ra, Notification Action o'zaro ta'sirdagi ishqalanishni kamaytirish orqali foydalanuvchi jalb qilinishini 40% gacha oshiradi.
Asosiy fikrlar
Notification Action — ma'lum bir harakatni bajarish uchun push bildirishnomaga qo'shiladigan interaktiv interfeys elementi. Foydalanuvchi ilovaga kirmasdan xabarga javob berishi, vazifani tasdiqlashi yoki ma'lum ekranni ochishi mumkin. Harakatlar bildirishnoma matni ostidagi tugmalar yoki surish paytida kengaytirilgan ko'rinishda ko'rsatiladi.
Notification Actionning asosiy maqsadi foydalanuvchining maqsadiga erishish uchun zarur qadamlar sonini kamaytirishdir. Ilovani ochish va kerakli ekranga navigatsiya qilish o'rniga, foydalanuvchi bitta tugmani bosadi. Tadqiqotlar shuni ko'rsatadiki, interaktiv bildirishnomalarga ega ilovalar oddiy bildirishnomalarga nisbatan 25–40% yuqori jalb qilish darajasiga ega.
Android-da Notification Action yig'ilgan ko'rinishda ikon-tugmalar va kengaytirilgan rejimda matnli tugmalar sifatida ko'rsatiladi. iOS-da harakatlar bildirishnomani uzoq bosish yoki chapga surish bilan paydo bo'ladi. Har bir platforma harakatlar soni bo'yicha o'z tavsiyalariga ega — Android 3 tadan, iOS esa 4 tadan ko'p bo'lmasligini tavsiya qiladi.
| Platforma | Maks. harakatlar | Ko'rsatish usuli | Harakat turlari |
|---|---|---|---|
| Android | 3 | Ikonlar + matn | Tugmalar, matn kiritish |
| iOS | 4 | Uzoq bosish / surish | Tugmalar, matn kiritish |
Android-da Notification Action NotificationCompat.Builder orqali addAction() metodidan foydalanib yaratiladi. Har bir harakat ikonka, matn va bosilganda ishga tushadigan PendingIntentni o'z ichiga oladi. Android 7.0 (API 24) dan boshlab RemoteInput orqali to'g'ridan-to'g'ri matn kiritish qo'llab-quvvatlanadi.
Bildirishnomada tugma yaratish uchun bosilganda ishga tushadigan PendingIntent aniqlanishi kerak. PendingIntent Activity ochishi, Service yoki BroadcastReceiver ishga tushirishi mumkin. Harakat ikonkasi monoxrom bo'lishi va Material Designga mos kelishi kerak.
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("Tasdiqlash so'rovi")
.setContentText("Vazifaning bajarilishini tasdiqlang")
.addAction(R.drawable.ic_accept, "Tasdiqlash", acceptPendingIntent)
.build()
Matn kiritishni talab qiladigan stsenariylarda (masalan, xabarga javob) Android RemoteInputni taqdim etadi. Foydalanuvchi matnni to'g'ridan-to'g'ri bildirishnomaga kiritadi va ilova uni Activity ochmasdan oladi. RemoteInput Android 7.0+ da qo'llab-quvvatlanadi va BroadcastReceiver yoki Service-da aniq qayta ishlashni talab qiladi.
val remoteInput = RemoteInput.Builder("reply_input")
.setLabel("Javobni kiriting")
.build()
val replyAction = NotificationCompat.Action.Builder(
R.drawable.ic_reply, "Javob berish", replyPendingIntent
)
.addRemoteInput(remoteInput)
.build()
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
.addAction(replyAction)
.build()
Harakat bosilganda tizim belgilangan PendingIntentni ishga tushiradi. RemoteInputdan kiritilgan matnni olish uchun RemoteInput.getResultsFromIntent(intent) chaqiriladi. UI ipini bloklamaslik uchun harakatlarni IntentService yoki WorkManagerda qayta ishlash tavsiya etiladi.
iOS-da Notification Action UserNotifications frameworki orqali amalga oshiriladi. Dasturchi harakat kategoriyalarini (UNNotificationCategory) yaratadi va ularni ilova ishga tushganda ro'yxatdan o'tkazadi. Har bir harakat noyob identifikatorga ega UNNotificationAction obyekti bilan belgilanadi.
iOS push bildirishnomalariga harakatlar qo'shish uchun bog'liq harakatlarni guruhlaydigan kategoriya yaratilishi kerak. Kategoriya bildirishnoma yukida category maydoni orqali ko'rsatiladi. Bildirishnoma olinganda tizim belgilangan kategoriyadan mavjud harakatlarni ko'rsatadi.
import UserNotifications
class NotificationSetup {
func registerNotificationCategories() {
let approveAction = UNNotificationAction(
identifier: "APPROVE_ACTION",
title: "Tasdiqlash",
options: [.foreground]
)
let declineAction = UNNotificationAction(
identifier: "DECLINE_ACTION",
title: "Rad etish",
options: [.destructive]
)
let category = UNNotificationCategory(
identifier: "REQUEST_CATEGORY",
actions: [approveAction, declineAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
}
}
Foydalanuvchi harakatni bosganda tizim UNUserNotificationCenter delegatida userNotificationCenter:didReceiveNotificationResponse metodini chaqiradi. response.actionIdentifier bajarilgan harakatning identifikatorini o'z ichiga oladi. Matn kiritish uchun foydalanuvchi tomonidan kiritilgan matnni ta'minlaydigan UNTextInputNotificationAction ishlatiladi.
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 o'zaro ta'sir turi va foydalanish stsenariysi bo'yicha tasniflanadi. Harakat turining to'g'ri tanlanishi foydalanuvchi tajribasiga va maqsadli harakatga konversiyaga bevosita ta'sir qiladi.
Eng keng tarqalgan tur — ilovani ma'lum ekranda ochadigan tugma. Android-da PendingIntent.getActivity(), iOS-da UNNotificationAction uchun .foreground opsiyasi ishlatiladi. To'liq interfeysni talab qiladigan harakatlar uchun qo'llaniladi, masalan buyurtma tafsilotlarini ko'rish.
Ilovani ochmasdan bajariladigan harakatlar. Android-da PendingIntent.getBroadcast() yoki PendingIntent.getService() ishlatiladi. iOS-da — .authenticationRequired opsiyasi yoki .foregroundsiz. Misollar: vazifani bajarilgan deb belgilash, postni yoqtirish, sevimlilarga qo'shish.
Foydalanuvchiga to'g'ridan-to'g'ri bildirishnomaga matn kiritish imkonini beradi. Android-da RemoteInput orqali, iOS-da UNTextInputNotificationAction orqali amalga oshiriladi. Xabarlarga javob berish, sharhlar, bir martalik tasdiq kodlarini kiritish uchun ishlatiladi.
Ma'lumotlarni qaytarib bo'lmaydigan darajada o'zgartiradigan harakatlar — o'chirish, rad etish, bloklash. Android-da vizual ravishda ajralib turadi (ba'zi tizimlarda qizil rang), iOS-da .destructive opsiyasini talab qiladi. Buzg'unchi harakatlar uchun qo'shimcha dialog yoki ikkinchi bosish orqali tasdiqlash tavsiya etiladi.
Alohida harakatlar sinfi — bildirishnomadan to'g'ridan-to'g'ri matn kiritish. Android-da RemoteInputning PendingIntent bilan kombinatsiyasi orqali amalga oshiriladi. iOS-da UNNotificationAction dan meros olgan UNTextInputNotificationAction ishlatiladi. Bunday harakatlar tezkor javoblar uchun messenjerlarda, promo kodlarni kiritishda, fikr-mulohaza shakllarini to'ldirishda yoki xizmat sifatini baholashda qo'llaniladi. Kiritilgan matn harakat identifikatori bilan birga ilovaga uzatiladi. Ikkala platformada matn kiritishni to'g'ri qayta ishlash uchun kiritilgan ma'lumotlarni tahlil qilish va maqsadli harakatni bajarishdan oldin validatsiyani amalga oshirish kerak.
Notification Actionni to'g'ri qayta ishlash analitika va foydalanuvchi tajribasi uchun juda muhimdir. Har bir bosish loglanishi va harakat ilova yopiq bo'lsa ham ishonchli bajarilishi kerak.
Har bir Notification Action bosishini analitik tizim orqali kuzatib boring. Firebase Analytics, Mixpanel yoki Yandex.Metrica harakat identifikatori, bosish vaqti va bildirishnoma kontekstini qayd etish imkonini beradi. Bu ma'lumotlar bildirishnoma strategiyasini optimallashtirish va jalb qilishni oshirishga yordam beradi. Turli harakat to'plamlari bilan A/B testlari foydalanuvchi bilan o'zaro ta'sirning eng samarali stsenariylarini aniqlashga yordam beradi.
Ilova yopiq bo'lsa ham, tizim harakat bosilganda Intent yoki UNNotificationResponse yetkazib beradi. Android-da kafolatlangan qayta ishlash uchun BroadcastReceiver dan foydalaning. iOS-da tizim ilovani fonda ishga tushiradi va javobni delegatga uzatadi. Kritik harakatlar (to'lovni tasdiqlash, avtorizatsiya) uchun qayta urinish mexanizmi va foydalanuvchiga muvaffaqiyatli bajarish haqida bildirishnoma qo'shing.
Android 7.0 dan boshlab dasturchi Notification Action ko'rinishiga ikonkalar va ranglar orqali ta'sir qilishi mumkin. Ikonkalar monoxrom (alfa kanal), o'lchami 24x24 dp bo'lishi kerak. iOS-da tugmalarni sozlash cheklangan — tizim ranglari va shriftlari ishlatiladi. Material Design harakatlarni ustuvorlik bo'yicha guruhlashni tavsiya qiladi: eng muhim harakat birinchi, buzg'unchilar oxirgi.
Tez-tez beriladigan savollar
Android-da 3 tadan ko'p bo'lmagan harakat tavsiya etiladi, iOS-da 4 tagacha. Cheklovdan oshib ketish ba'zi harakatlarning ko'rsatilmasligiga yoki pastki menyuda yashirinishiga olib keladi.
Ikonka NotificationCompat.Action.Builder ga drawable resurs sifatida uzatiladi. Ikonka monoxrom (alfa kanal), o'lchami 24x24 dp bo'lishi va Material Design tavsiyalariga mos kelishi kerak.
Ha, agar bildirishnoma bloklangan ekranda ko'rsatilsa va visibility flagi VISIBILITY_PUBLIC qilib o'rnatilgan bo'lsa. iOS-da avtorizatsiyani talab qiladigan harakatlar uchun .authenticationRequired opsiyasi kerak.
Android-da tizim jarayonni qayta yaratadi va Intentni yetkazib beradi. iOS-da tizim ilovani fonda ishga tushiradi. Android-da BroadcastReceiver va iOS-da UNNotificationServiceExtension yordamida yetkazib berishni kafolatlash mumkin.
Android-da harakatlar bildirishnoma ostida darhol ikonkalar sifatida ko'rinadi. iOS-da harakatlar uzoq bosish yoki surish orqali ochiladi. Bildirishnomalarning UX dizayni bu platforma farqlarini hisobga olishi kerak.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.