Mobil inkişafda lokal bildirişlər: mahiyyəti, hansı növləri var və necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-03-19 Oxuma vaxtı: 8 dəq

Lokal bildiriş — bu, tətbiqin uzaq serverin iştirakı olmadan istifadəçiyə göndərdiyi mesajdır. Bütün məlumatlar birbaşa alıcının cihazında emal edilir və göstərilir. Belə mexanizm xatırlatmalar, taymerlər və zəngli saatlar üçün uyğundur, tətbiq fon rejimində olduqda və ya bağlandıqda. Apple Developer Documentation-ya görə, UNUserNotificationCenter iOS-da lokal bildirişlərin mərkəzləşdirilmiş idarə edilməsini təmin edir.

Əsas məqamlar

  • Lokal bildiriş — serverin iştirakı olmadan cihaz tərəfindən planlaşdırılan və çatdırılan mesaj
  • Platformalar — Android NotificationManager istifadə edir, iOS UNUserNotificationCenter istifadə edir
  • Planlaşdırma — bildirişlər vaxt, coğrafi mövqe və ya təqvimə görə təxirə salına bilər
  • Məhdudiyyətlər — lokal bildirişlər cihazlar arasında işləmir və ayrıca sinxronizasiya məntiqi tələb edir
  • UX — düzgün qurulmuş bildirişlər istifadəçi məşğulluğunu artırır və istifadəçini tətbiqə qaytarır

Lokal bildiriş nədir?

Lokal bildiriş — bu, tətbiqin quraşdırıldığı eyni cihazda əməliyyat sistemi tərəfindən yaradılan və göstərilən触发 mesajdır. Push bildirişlərindən fərqli olaraq, lokal bildirişlər xarici serverdən keçmir — bütün planlaşdırma məntiqi müştəri tərəfdə yerinə yetirilir.

Belə bildirişlər tətbiqin vəziyyətindən asılı olmayaraq işləyir: aktiv, kiçildilmiş və ya tamamilə bağlanmış. Əməliyyat sistemi təyin edilmiş vaxtda çatdırılmanı öz üzərinə götürür, tərtibatçı isə yalnız məzmun və trigger təyin edir.

Sistem lokal bildirişin şəbəkə olmadıqda belə çatdırılmasını təmin edir. Bu, stabil internet bağlantısı və işləyən server tələb edən push bildirişləri üzərində əsas üstünlükdür.

Sorğunun əsas komponentləri

Hər bir lokal bildiriş üç hissədən ibarətdir: məzmun (başlıq, mətn, səs), trigger (vaxt və ya coğrafi şərt) və sorğu identifikatoru. Identifikator bildirişi çatdırılmadan əvvəl ləğv etməyə və ya yeniləməyə imkan verir.

Tərtibatçı iOS-da bir tətbiq üçün 64-ə qədər lokal bildiriş təyin edə bilər, Android-də isə məhdudiyyətsiz sayda. Fərq əməliyyat sistemlərinin memarlıq məhdudiyyətləri ilə bağlıdır.

Lokal bildirişlər iOS və Android-də necə işləyir?

Hər iki platforma lokal bildirişlərlə işləmək üçün öz API-lərini təqdim edir. iOS-da mərkəzi element UNUserNotificationCenter, Android-də isə NotificationManager-dir. Fərqli interfeyslərə baxmayaraq, məntiq eynidir: tətbiq sorğu yaradır, onu sistemdə qeydiyyatdan keçirir və OS təyin edilmiş vaxtda bildirişi çatdırır.

iOS təqvim hadisələri üçün UNCalendarNotificationTrigger, intervallar üçün UNTimeIntervalNotificationTrigger və coğrafi mövqe üçün UNLocationNotificationTrigger istifadə edir. Android AlarmManager, WorkManager və setExact vasitəsilə dəqiq planlaşdırma təklif edir.

Android 12 versiyasından — SCHEDULE_EXACT_ALARM istifadəçidən xüsusi icazə tələb edir. iOS-da icazə bir dəfə UNUserNotificationCenter.requestAuthorization vasitəsilə tələb olunur və istifadəçi giriş səviyyəsini seçir: bannerlər, səslər, nişanlar.

Lokal bildirişlərin növləri

Lokal bildirişlər məzmununa görə deyil, trigger növünə görə təsnif edilir. Hər bir növ bildirişin istifadəçiyə nə vaxt və hansı şəraitdə göstəriləcəyini müəyyən edir.

Platformalara görə trigger müqayisəsi

iOS və Android-də trigger növləri fərqli şəkildə həyata keçirilsə də, məntiqi təsnifat eynidir. iOS tarixlər üçün UNCalendarNotificationTrigger, intervallar üçün UNTimeIntervalNotificationTrigger və coğrafi mövqe üçün UNLocationNotificationTrigger istifadə edir. Android setExact və setRepeating ilə AlarmManager, həmçinin gecikdirilmiş tapşırıqlar üçün WorkManager təklif edir.

Trigger növüTəsvirNümunə
Vaxt intervalıBaşlamadan N saniyə sonra bildirişGeri sayım taymeri
Təqvim tarixiMüəyyən vaxt və tarixdə bildirişGörüş xatırlatması
Coğrafi mövqeRegiona daxil olarkən/çıxarkən bildirişMağaza yanında xatırlatma
ŞərtsizAPI çağırışında dərhal çatdırılmaYükləmə bildirişi

iOS-da həmçinin UNNotificationAttachment mövcuddur — bildirişin gövdəsinə şəkil, audio və ya video əlavəsi. Android NotificationCompat.Style vasitəsilə düymələr və böyük şəkillərlə fərdi şablonları dəstəkləyir.

Trigger seçimi ssenaridən asılıdır: təqvim xatırlatmaları təqvim triggeri ilə, coğrafi xatırlatmalar isə coğrafi mövqe ilə ən yaxşı işləyir. Interval triggerləri sabit dövrü olan müntəzəm hadisələr üçün uyğundur.

Triggerlərin fon rejimində davranışı

iOS-da lokal bildirişlər tətbiq bağlı olduqda belə sistem tərəfindən çatdırılır — UNUserNotificationCenter növbəni müstəqil idarə edir. Android-də çatdırılma seçilmiş mexanizmdən asılıdır: AlarmManager ekran söndürüldükdə belə işə düşür, WorkManager isə enerji qənaətini nəzərə alır.

Mobil tətbiqlərdə istifadə ssenariləri

Lokal bildirişlər xarici infrastrukturun artıq və ya əlçatan olmadığı məsələləri həll edir. Əsas ssenarilər: xatırlatmalar, taymerlər, öyrənmə ipucları və təxirə salınmış hərəkətlər.

  • Xatırlatmalar — təqvim tətbiqi hadisənin müəyyən tarixinə lokal bildiriş yaradır
  • Öyrənmə ipucları — quraşdırmadan bir gün sonra tətbiq ekran haqqında məsləhət göstərir
  • Taymerlər — mətbəx taymeri tətbiq bağlı olduqda belə müəyyən vaxtdan sonra işə düşür
  • Əməliyyat gedişatı — yükləmə və ya məlumat ixracının bitməsi barədə bildiriş

Localytics araşdırmaları göstərir ki, lokal xatırlatmalardan istifadə edən tətbiqlər quraşdırmadan sonrakı ilk həftədə 35% daha çox istifadəçi saxlayır. Bu, lokal bildirişləri onboarding üçün güclü bir vasitəyə çevirir.

Tezliyi sui-istifadə etməmək vacibdir — sistem özü bir tətbiqdən bildirişləri qruplaşdırır və istifadəçi bezdirici olduqda bütün lokal bildirişləri söndürə bilər. Kritik olmayan hadisələr üçün optimal tezlik gündə 2–3 bildirişdən çox deyil.

Android-də planlaşdırma nümunəsi

Android-də lokal bildiriş planlaşdırmaq üçün NotificationManager-i AlarmManager ilə birlikdə istifadə edin. Android 8+-dan etibarən əvvəlcə bildiriş kanalı yaratmaq lazımdır, əks halda bildiriş göstərilməyəcək.

kotlin
val channelId = "reminder_channel"
val notificationId = "task_reminder_42"

val channel = NotificationChannel(
    channelId,
    "Xatırlatmalar",
    NotificationManager.IMPORTANCE_HIGH
).apply {
    description = "Tapşırıqları xatırlatmaq üçün kanal"
}

val manager = getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)

val intent = Intent(this, ReminderReceiver::class.java).apply {
    putExtra("notification_id", notificationId)
    putExtra("channel_id", channelId)
}

val pendingIntent = PendingIntent.getBroadcast(
    this, notificationId.hashCode(),
    intent, PendingIntent.FLAG_UPDATE_CURRENT
)

val alarmManager = getSystemService(AlarmManager::class.java)
alarmManager.setExact(
    AlarmManager.RTC_WAKEUP,
    triggerTimeMillis,
    pendingIntent
)

Android 12+-da setExact çağırmazdan əvvəl SCHEDULE_EXACT_ALARM icazəsini yoxlayın. İcazə verilməyibsə — vaxt pəncərəsi daxilində çatdırılmanı təmin edən setWindow istifadə edin.

BroadcastReceiver-də emal

AlarmManager işə düşdükdə sistem BroadcastReceiver tərəfindən qəbul edilən yayım Intent göndərir. Onun daxilində NotificationManager vasitəsilə bildiriş yaratmaq və göstərmək lazımdır. PendingIntent-in FLAG_UPDATE_CURRENT istifadə etdiyinə əmin olun, əks halda məlumatlar dəyişdikdə köhnə bildirişlər köhnəlmiş Intent-dən istifadə etməyə davam edəcək.

iOS-da planlaşdırma nümunəsi

iOS-da lokal bildirişlər UNUserNotificationCenter vasitəsilə UNMutableNotificationContent və triggerlərdən biri istifadə edilərək yaradılır. Planlaşdırmadan əvvəl istifadəçidən icazə istəmək lazımdır.

swift
import UserNotifications

let center = UNUserNotificationCenter.current()

center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    guard granted else { return }
}

let content = UNMutableNotificationContent()
content.title = "Tapşırıq xatırlatması"
content.body = "Hesabatı 18:00-a qədər bitirməyi unutmayın"
content.sound = .default
content.userInfo = ["task_id": "42"]

let trigger = UNTimeIntervalNotificationTrigger(
    timeInterval: 3600,
    repeats: false
)

let request = UNNotificationRequest(
    identifier: "task_reminder_42",
    content: content,
    trigger: trigger
)

center.add(request)

iOS 64-ə qədər eyni vaxtda lokal bildiriş sorğusunu dəstəkləyir. Limit aşılıbsa — sistem aktiv sorğular çatdırılana və ya ləğv edilənə qədər yeni sorğuları rədd edir. Cari növbəni yoxlamaq üçün getPendingNotificationRequests istifadə edin.

Deleqat cavabının işlənməsi

İstifadəçi iOS lokal bildirişi ilə qarşılıqlı əlaqədə olduqda, UNUserNotificationCenterDelegate deleqatının userNotificationCenter:didReceive response metodu çağırılır. Bu metodda sorğu identifikatoru, actionIdentifier (hansı düymənin basıldığı) və fərdi userInfo mövcuddur. Bu, bildirişin sadə açılmasını konkret fəaliyyət düyməsinin basılmasından ayırmağa imkan verir.

Lokal bildirişlərin ən yaxşı təcrübələri

Lokal bildirişlərin faydalı olması və istifadəçini qıcıqlandırmaması üçün bir neçə əsas qaydaya əməl edin. Birincisi: tezliyə nəzarət edin — kritik olmayan hadisələr üçün gündə 2–3 bildirişdən çox olmamalıdır, əks halda istifadəçi bütün bildirişləri söndürəcək.

İkincisi: istifadəçiyə seçim verin. İnterfeysdə müəyyən lokal bildiriş növlərini söndürmək imkanı əlavə edin. Android-də bunun üçün aşağı importance ilə ayrıca NotificationChannel istifadə etmək rahatdır, iOS-da — tətbiq parametrlərində ayrıca kateqoriya.

Üçüncüsü: kontekstual uyğunluq — bildiriş istifadəçiyə lazım olduğu zaman görünməlidir. Coğrafi triggerlər ev yaxınlığındakı işləri xatırlatmaq üçün ideal, təqvim triggerləri — görüşlər üçün, interval triggerləri — su içmək və ya hərəkət etmək kimi müntəzəm hərəkətlər üçün. Növləri lazımsız yerə qarışdırmayın.

Dördüncüsü: real cihazlarda sınaqdan keçirin. iOS simulyatoru lokal bildirişlərin çatdırılmasının bütün ssenarilərini, xüsusən də fon rejimində, emulyasiya etmir. Android-də planlaşdırılmış bildiriş növbəsini və onların parametrlərini yoxlamaq üçün adb shell dumpsys notification istifadə edin. Beşincisi: həmişə istifadəçiyə tətbiq interfeysi vasitəsilə bildirişləri söndürmək imkanı verin — bu, UX və App Store Review Guidelines üçün məcburi tələbdir.

Tez-tez verilən suallar

Lokal bildiriş push-dan nə ilə fərqlənir?

Lokal bildiriş serverin iştirakı olmadan cihaz tərəfindən planlaşdırılır və çatdırılır. Push bildirişi xarici xidmət (FCM, APNS) və internet bağlantısı tələb edir. Lokal bildirişlər oflayn işləyir, push — yalnız şəbəkə olduqda.

Neçə lokal bildiriş planlaşdırmaq olar?

iOS eyni vaxtda planlaşdırılmış 64 sorğu ilə məhdudlaşdırır. Android-in ciddi limiti yoxdur, lakin 500-dən çox bildiriş sistemin performansını aşağı sala və çatdırılma müddətinə təsir göstərə bilər.

Planlaşdırmadan sonra lokal bildirişi ləğv etmək olar?

Bəli, iOS-da sorğu identifikatoru ilə removePendingNotificationRequests istifadə edin. Android-də NotificationManager.cancel çağırın və ya AlarmManager vasitəsilə PendingIntent-i ləğv edin. Ləğv etmək üçün unikal identifikator məcburidir.

Lokal bildirişlər üçün istifadəçi icazəsi lazımdır?

iOS-da icazə məcburi olaraq requestAuthorization vasitəsilə tələb olunur. Android 13+-da (Tiramisu) da POST_NOTIFICATIONS icazəsi tələb olunur. Android-in köhnə versiyaları lokal bildirişlər üçün açıq icazə tələb etmir.

Lokal bildirişə düymələri necə əlavə etmək olar?

iOS-da UNNotificationAction yaradın və UNNotificationCategory-ə əlavə edin. Android-də BroadcastReceiver üçün PendingIntent ilə NotificationCompat.Builder.addAction istifadə edin. Hər bir düymə tətbiqdə ayrıca bir hərəkət işə salır.

Nəticə

  • Lokal bildirişlər — server infrastrukturu olmadan cihaz tərəfindən planlaşdırılan və çatdırılan mesajlar
  • UNUserNotificationCenter — iOS-da lokal bildirişlərlə iş üçün əsas API
  • NotificationManager — Android-də lokal bildirişlərlə iş üçün əsas API
  • Trigger növləri — vaxt intervalı, təqvim tarixi, coğrafi mövqe və şərtsiz çatdırılma
  • Limitlər — iOS 64 planlaşdırılmış sorğu ilə məhdudlaşdırır, Android-in ciddi məhdudiyyəti yoxdur
  • İcazələr — iOS və Android 13+-da bildirişlərin göstərilməsi üçün istifadəçinin açıq razılığı tələb olunur
  • Oflayn — lokal bildirişlər internet bağlantısı olmadan işləyir, bu da onları push-dan daha etibarlı edir

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.

Layihəni müzakirə et

Həm də oxuyun