Notification Action — push bildirişində birbaşa göstərilən və istifadəçiyə tətbiqi açmadan hərəkət etməyə imkan verən interaktiv düymələr və mətn sahələridir. Bu, istifadəçi təcrübəsinin əsas elementidir və hədəf ekrana gedən yolu qısaltır. Android Developers, 2025 məlumatlarına görə, Notification Action qarşılıqlı əlaqədə sürtünməni azaltmaqla istifadəçi cəlb edilməsini 40%-ə qədər artırır.
Əsas məqamlar
Notification Action — müəyyən bir hərəkəti yerinə yetirmək üçün push bildirişinə əlavə edilən interaktiv interfeys elementidir. İstifadəçi tətbiqə girmədən mesaja cavab verə, tapşırığı təsdiqləyə və ya müəyyən ekranı aça bilər. Hərəkətlər bildiriş mətninin altında düymələr və ya sürüşdürmə zamanı genişləndirilmiş görünüşdə göstərilir.
Notification Action’un əsas məqsədi istifadəçinin məqsədinə çatmaq üçün tələb olunan addımların sayını azaltmaqdır. Tətbiqi açmaq və lazımi ekrana getmək əvəzinə, istifadəçi bir düyməni klikləyir. Araşdırmalar göstərir ki, interaktiv bildirişləri olan tətbiqlər adi bildirişlərlə müqayisədə 25–40% daha yüksək cəlb edilmə səviyyəsi göstərir.
Android-də Notification Action yığıcam görünüşdə ikon-düymələr, genişləndirilən rejimdə isə mətn düymələri şəklində göstərilir. iOS-da hərəkətlər bildirişə uzun basmaq və ya sola sürüşdürməklə görünür. Hər platformanın hərəkətlərin sayı ilə bağlı öz tövsiyələri var — Android 3-dən, iOS isə 4-dən çox olmamağı tövsiyə edir.
| Platforma | Maks. hərəkət | Göstərilmə üsulu | Hərəkət növləri |
|---|---|---|---|
| Android | 3 | Ikonlar + mətn | Düymələr, mətn daxil etmə |
| iOS | 4 | Uzun basma / sürüşdürmə | Düymələr, mətn daxil etmə |
Android-də Notification Action NotificationCompat.Builder vasitəsilə addAction() metodundan istifadə edələk yaradılır. Hər bir hərəkət ikon, mətn və klikləndikdə işə düşən PendingIntent ehtiva edir. Android 7.0-dan (API 24) başlayaraq RemoteInput vasitəsilə birbaşa mətn daxil etmə dəstəklənir.
Bildirişdə düymə yaratmaq üçün klikləndikdə işə düşəcək PendingIntent təyin edilməlidir. PendingIntent Activity aça, Service və ya BroadcastReceiver işə sala bilər. Hərəkət ikonu monoxrom olmalı və Material Design-ə uyğun olmalıdır.
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("Təsdiq sorğusu")
.setContentText("Tapşırığın yerinə yetirilməsini təsdiqləyin")
.addAction(R.drawable.ic_accept, "Təsdiq et", acceptPendingIntent)
.build()
Mətn daxil etmə tələb edən ssenarilərdə (məsələn, mesaja cavab) Android RemoteInput təqdim edir. İstifadəçi birbaşa bildirişdə mətn daxil edir və tətbiq onu Activity açmadan qəbul edir. RemoteInput Android 7.0+-ə dəstəklənir və BroadcastReceiver və ya Service-də açıq şəkildə idarə olunmalıdır.
val remoteInput = RemoteInput.Builder("reply_input")
.setLabel("Cavab daxil edin")
.build()
val replyAction = NotificationCompat.Action.Builder(
R.drawable.ic_reply, "Cavab ver", replyPendingIntent
)
.addRemoteInput(remoteInput)
.build()
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
.addAction(replyAction)
.build()
Hərəkət klikləndikdə sistem müəyyən edilmiş PendingIntent-i işə salır. RemoteInput-dan daxil edilmiş mətni almaq üçün RemoteInput.getResultsFromIntent(intent) çağırılır. UI ipini bloklamamaq üçün hərəkətlərin IntentService və ya WorkManager-də idarə edilməsi tövsiyə olunur.
iOS-da Notification Action UserNotifications framework-i vasitəsilə həyata keçirilir. Tərtibatçı hərəkət kateqoriyaları (UNNotificationCategory) yaradır və onları tətbiq işə düşərkən qeydiyyatdan keçirir. Hər bir hərəkət unikal identifikatora malik UNNotificationAction obyekti ilə müəyyən edilir.
iOS push bildirişlərinə hərəkətlər əlavə etmək üçün əlaqəli hərəkətləri qruplaşdıran kateqoriya yaradılmalıdır. Kateqoriya bildirişin yükündə category sahəsi vasitəsilə göstərilir. Bildiriş qəbul edildikdə sistem göstərilən kateqoriyadan mövcud hərəkətləri göstərir.
import UserNotifications
class NotificationSetup {
func registerNotificationCategories() {
let approveAction = UNNotificationAction(
identifier: "APPROVE_ACTION",
title: "Təsdiq et",
options: [.foreground]
)
let declineAction = UNNotificationAction(
identifier: "DECLINE_ACTION",
title: "Rədd et",
options: [.destructive]
)
let category = UNNotificationCategory(
identifier: "REQUEST_CATEGORY",
actions: [approveAction, declineAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
}
}
İstifadəçi hərəkəti kliklədikdə sistem UNUserNotificationCenter delegate-ində userNotificationCenter:didReceiveNotificationResponse metodunu çağırır. response.actionIdentifier yerinə yetirilən hərəkətin identifikatorunu ehtiva edir. Mətn daxil etmə üçün istifadəçi tərəfindən daxil edilmiş mətni təmin edən UNTextInputNotificationAction istifadə olunur.
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 qarşılıqlı əlaqə növünə və istifadə ssenarisinə görə təsnif edilir. Düzgün hərəkət növünün seçilməsi istifadəçi təcrübəsinə və hədəf hərəkətə konversiyaya birbaşa təsir göstərir.
Ən geniş yayılmış növ — tətbiqi müəyyən ekranda açan düymə. Android-də PendingIntent.getActivity(), iOS-da isə UNNotificationAction üçün .foreground opsiyası istifadə olunur. Tam interfeys tələb edən hərəkətlər üçün tətbiq edilir, məsələn sifariş detallarına baxmaq.
Tətbiqi açmadan yerinə yetirilən hərəkətlər. Android-də PendingIntent.getBroadcast() və ya PendingIntent.getService() istifadə olunur. iOS-da — .authenticationRequired opsiyası və ya .foreground olmadan. Nümunələr: tapşırığı yerinə yetirildi kimi qeyd etmək, postu bəyənmək, seçimlərə əlavə etmək.
İstifadəçiyə birbaşa bildirişdə mətn daxil etməyə imkan verir. Android-də RemoteInput, iOS-da isə UNTextInputNotificationAction vasitəsilə həyata keçirilir. Mesajlara cavab vermək, şərh yazmaq, birdəfəlik təsdiq kodlarını daxil etmək üçün istifadə olunur.
Məlumatları geri döndürməz şəkildə dəyişdirən hərəkətlər — silmə, rədd etmə, bloklama. Android-də vizual olaraq seçilir (bəzi sistemlərdə qırmızı rəng), iOS-da .destructive opsiyası tələb edir. Dağıdıcı hərəkətlər üçün əlavə dialoq və ya ikinci kliklə təsdiq tövsiyə olunur.
Ayrı bir hərəkət sinfi — bildirişdən birbaşa mətn daxil etmə. Android-də RemoteInput ilə PendingIntent-in birləşməsi ilə həyata keçirilir. iOS-da UNNotificationAction-dan törəyən UNTextInputNotificationAction istifadə olunur. Bu hərəkətlər sürətli cavablar üçün messenger-lərdə, promokodların daxil edilməsində, əlaqə formalarının doldurulmasında və ya xidmət keyfiyyətinin qiymətləndirilməsində tətbiq edilir. Daxil edilmiş mətn hərəkət identifikatoru ilə birlikdə tətbiqə ötürülür. Hər iki platformada mətn daxil etmənin düzgün idarə edilməsi üçün daxil edilmiş məlumatların pars edilməsi və hədəf hərəkəti yerinə yetirməzdən əvvəl validasiya tətbiq edilməlidir.
Notification Action’un düzgün idarə edilməsi analitika və istifadəçi təcrübəsi üçün kritik əhəmiyyət kəsb edir. Hər bir klik loglanmalı və hərəkət tətbiq bağlı olsa belə etibarlı şəkildə yerinə yetirilməlidir.
Hər bir Notification Action klikini analitik sistem vasitəsilə izləyin. Firebase Analytics, Mixpanel və ya Yandex.Metrica hərəkət identifikatorunu, klik vaxtını və bildiriş kontekstini qeyd etməyə imkan verir. Bu məlumatlar bildiriş strategiyasını optimallaşdırmağa və cəlbetməni artırmağa kömək edir. Fərqli hərəkət dəstləri ilə A/B testləri istifadəçi ilə qarşılıqlı əlaqənin ən effektiv ssenarilərini müəyyən etməyə kömək edir.
Tətbiq bağlı olduqda belə, sistem hərəkət klikləndikdə Intent və ya UNNotificationResponse ötürür. Android-də zəmanətli idarəetmə üçün BroadcastReceiver istifadə edin. iOS-da sistem tətbiqi fonda işə salır və cavabı delegate-ə ötürür. Kritik hərəkətlər (ödəniş təsdiqi, avtorizasiya) üçün təkrarlama mexanizmi və istifadəçiyə uğurla yerinə yetirilmə barədə bildiriş əlavə edin.
Android 7.0-dan başlayaraq tərtibatçı Notification Action-un görünüşünə ikonlar və rənglər vasitəsilə təsir edə bilər. Ikonlar monoxrom (alfa kanalı), ölçüsü 24x24 dp olmalıdır. iOS-da düymə fərdiləşdirməsi məhduddur — sistem rəngləri və şriftləri istifadə olunur. Material Design hərəkətləri prioritetə görə qruplaşdırmağı tövsiyə edir: ən vacib hərəkət birinci, dağıdıcılar sonuncu.
Tez-tez verilən suallar
Android-də 3-dən çox olmayan hərəkət tövsiyə olunur, iOS-da isə 4-ə qədər. Limitin aşılması bəzi hərəkətlərin göstərilməməsinə və ya alt menyuda gizlənməsinə səbəb olur.
Ikon NotificationCompat.Action.Builder-a drawable resursu kimi ötürülür. Ikon monoxrom (alfa kanalı), ölçüsü 24x24 dp olmalı və Material Design tövsiyələrinə uyğun olmalıdır.
Bəli, əgər bildiriş bloklanmış ekranda göstərilirsə və visibility flaqı VISIBILITY_PUBLIC olaraq təyin edilibsə. iOS-da avtorizasiya tələb edən hərəkətlər üçün .authenticationRequired opsiyası tələb olunur.
Android-də sistem prosesi bərpa edir və Intent-’i çatdırır. iOS-da sistem tətbiqi fonda işə salır. Android-də BroadcastReceiver və iOS-da UNNotificationServiceExtension vasitəsilə çatdırılmaya zəmanət vermək olar.
Android-də hərəkətlər bildirişin altında dərhal ikonlar şəklində görünür. iOS-da hərəkətlər uzun basma və ya sürüşdürmə ilə açılır. Bildirişlərin UX dizaynı bu platforma fərqlərini nəzərə almalıdır.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun