Mobil ishlab chiqishda lokal bildirishnomalar: mohiyati, qanday turlari bor va qanday ishlaydi

Muallif: IT Sectr Nashr etilgan: 2026-03-19 O'qish vaqti: 8 daq

Lokal bildirishnoma — bu ilova foydalanuvchiga uzoq server ishtirokisiz yuboradigan xabardir. Barcha ma'lumotlar to'g'ridan-to'g'ri qabul qiluvchi qurilmasida qayta ishlanadi va ko'rsatiladi. Bunday mexanizm ilova fon rejimida yoki yopiq bo'lganida eslatmalar, taymerlar va budilniklar uchun mos keladi. Apple Developer Documentation ga ko'ra, UNUserNotificationCenter iOS-da lokal bildirishnomalarni markazlashtirilgan boshqarishni ta'minlaydi.

Asosiy nuqtalar

  • Lokal bildirishnoma — server ishtirokisiz qurilma tomonidan rejalashtirilgan va yetkazilgan xabar
  • Platformalar — Android NotificationManager dan foydalanadi, iOS UNUserNotificationCenter dan foydalanadi
  • Rejalashtirish — bildirishnomalar vaqt, geolokatsiya yoki kalendar bo'yicha kechiktirilishi mumkin
  • Cheklovlar — lokal bildirishnomalar qurilmalar o'rtasida ishlamaydi va alohida sinxronizatsiya mantig'ini talab qiladi
  • UX — to'g'ri sozlangan bildirishnomalar foydalanuvchi faolligini oshiradi va foydalanuvchini ilovaga qaytaradi

Lokal bildirishnoma nima?

Lokal bildirishnoma — bu ilova o'rnatilgan qurilmaning o'zida operatsion tizim tomonidan yaratilgan va ko'rsatiladigan xabardir. Push bildirishnomalaridan farqli o'laroq, lokal bildirishnomalar tashqi server orqali o'tmaydi — barcha rejalashtirish mantig'i mijoz tomonida bajariladi.

Bunday bildirishnomalar ilovaning holatidan qat'i nazar ishlaydi: faol, kichraytirilgan yoki butunlay yopiq. Operatsion tizim belgilangan vaqtda yetkazib berishni o'z zimmasiga oladi, dasturchi esa faqat mazmun va trigger ni belgilaydi.

Tizim lokal bildirishnomani tarmoq bo'lmagan taqdirda ham yetkazib berishni kafolatlaydi. Bu barqaror internet aloqasi va ishlaydigan server talab qiladigan push bildirishnomalariga nisbatan asosiy ustunlikdir.

So'rovning asosiy komponentlari

Har bir lokal bildirishnoma uch qismdan iborat: mazmun (sarlavha, matn, tovush), trigger (vaqt yoki geo-shart) va so'rov identifikatori. Identifikator bildirishnomani yetkazib berishdan oldin bekor qilish yoki yangilash imkonini beradi.

Dasturchi iOS-da bitta ilova uchun 64 tagacha lokal bildirishnoma o'rnatishi mumkin, Android-da esa cheksiz miqdorda. Farq operatsion tizimlarning arxitektura cheklovlari bilan bog'liq.

Lokal bildirishnomalar iOS va Android-da qanday ishlaydi?

Ikkala platforma ham lokal bildirishnomalar bilan ishlash uchun o'z API'larini taqdim etadi. iOS-da markaziy element UNUserNotificationCenter, Android-da — NotificationManager. Turli interfeyslarga qaramasdan, mantiq bir xil: ilova so'rov yaratadi, uni tizimda ro'yxatdan o'tkazadi va OT belgilangan vaqtda bildirishnomani yetkazib beradi.

iOS kalendar hodisalari uchun UNCalendarNotificationTrigger, intervallar uchun UNTimeIntervalNotificationTrigger va geolokatsiya uchun UNLocationNotificationTrigger dan foydalanadi. Android AlarmManager, WorkManager va setExact orqali aniq rejalashtirishni taklif qiladi.

Android 12 versiyasidan boshlab — SCHEDULE_EXACT_ALARM foydalanuvchidan maxsus ruxsat talab qiladi. iOS-da ruxsat bir marta UNUserNotificationCenter.requestAuthorization orqali so'raladi va foydalanuvchi kirish darajasini tanlaydi: bannerlar, tovushlar, belgilar.

Lokal bildirishnomalar turlari

Lokal bildirishnomalar mazmuniga ko'ra emas, balki trigger turiga ko'ra tasniflanadi. Har bir tur bildirishnomaning foydalanuvchiga qachon va qanday sharoitda ko'rsatilishini belgilaydi.

Platformalar bo'yicha triggerlarni taqqoslash

iOS va Android-da trigger turlari turlicha amalga oshirilgan bo'lsa-da, mantiqiy tasnif bir xil. iOS sanalar uchun UNCalendarNotificationTrigger, intervallar uchun UNTimeIntervalNotificationTrigger va geolokatsiya uchun UNLocationNotificationTrigger dan foydalanadi. Android setExact va setRepeating bilan AlarmManager, shuningdek kechiktirilgan vazifalar uchun WorkManager ni taklif qiladi.

Trigger turiTavsifMisol
Vaqt oralig'iIshga tushirilgandan N soniya keyin bildirishnomaOrqaga hisoblash taymeri
Kalendar sanasiAniq vaqt va sanadagi bildirishnomaUchrashuv eslatmasi
GeolokatsiyaHududga kirish/chiqishdagi bildirishnomaDo'kon yonidagi eslatma
ShartsizAPI chaqiruvida zudlik bilan yetkazishYuklab olish bildirishnomasi

iOS-da shuningdek UNNotificationAttachment mavjud — bildirishnoma tanasiga rasm, audio yoki video ilovasi. Android NotificationCompat.Style orqali tugmalar va katta rasmlar bilan maxsus shablonlarni qo'llab-quvvatlaydi.

Trigger ni tanlash stsenariyga bog'liq: kalendar eslatmalari kalendar triggeri orqali, geo-eslatmalar esa geolokatsiya orqali eng yaxshi ishlaydi. Interval triggerlari belgilangan davrga ega muntazam hodisalar uchun mos keladi.

Triggerlarning fonda harakati

iOS-da lokal bildirishnomalar ilova yopiq bo'lsa ham tizim tomonidan yetkaziladi — UNUserNotificationCenter navbatni mustaqil boshqaradi. Android-da yetkazish tanlangan mexanizmga bog'liq: AlarmManager ekran o'chirilgan bo'lsa ham ishga tushadi, WorkManager esa energiya tejashni hisobga olgan holda ishlaydi.

Mobil ilovalarda foydalanish stsenariylari

Lokal bildirishnomalar tashqi infratuzilma ortiqcha yoki mavjud bo'lmagan vazifalarni hal qiladi. Asosiy stsenariylar: eslatmalar, taymerlar, o'rgatuvchi maslahatlar va kechiktirilgan harakatlar.

  • Eslatmalar — kalendar ilovasi hodisaning belgilangan sanasiga lokal bildirishnoma yaratadi
  • O'rgatuvchi maslahatlar — o'rnatishdan bir kun keyin ilova ekran haqida maslahat ko'rsatadi
  • Taymerlar — oshxona taymeri ilova yopiq bo'lsa ham belgilangan vaqtdan keyin ishga tushadi
  • Operatsiyalar jarayoni — yuklab olish yoki ma'lumotlarni eksport qilish tugashi haqida bildirishnoma

Localytics tadqiqotlari shuni ko'rsatadiki, lokal eslatmalardan foydalanadigan ilovalar o'rnatishdan keyingi birinchi haftada 35% ko'proq foydalanuvchini saqlab qoladi. Bu lokal bildirishnomalarni onboarding uchun kuchli vositaga aylantiradi.

Chastotani suiiste'mol qilmaslik muhim — tizim o'zi bir ilovadan bildirishnomalarni guruhlaydi va foydalanuvchi bezovta qiladigan bo'lsa, barcha lokal bildirishnomalarni o'chirib qo'yishi mumkin. Kritik bo'lmagan hodisalar uchun optimal chastota kuniga 2–3 ta bildirishnomadan oshmasligi kerak.

Android-da rejalashtirish namunasi

Android-da lokal bildirishnomani rejalashtirish uchun NotificationManager ni AlarmManager bilan birgalikda ishlating. Android 8+ dan boshlab avval bildirishnoma kanalini yaratish kerak, aks holda bildirishnoma ko'rsatilmaydi.

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

val channel = NotificationChannel(
    channelId,
    "Eslatmalar",
    NotificationManager.IMPORTANCE_HIGH
).apply {
    description = "Vazifalarni eslatish uchun 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 ni chaqirishdan oldin SCHEDULE_EXACT_ALARM ruxsatini tekshiring. Agar ruxsat berilmagan bo'lsa — vaqt oynasi ichida yetkazishni kafolatlaydigan setWindow dan foydalaning.

BroadcastReceiver da qayta ishlash

AlarmManager ishga tushganda tizim BroadcastReceiver tomonidan qabul qilinadigan translyatsion Intent ni yuboradi. Uning ichida NotificationManager orqali bildirishnoma yaratish va ko'rsatish kerak. PendingIntent FLAG_UPDATE_CURRENT dan foydalanayotganiga ishonch hosil qiling, aks holda ma'lumotlar o'zgarganda eski bildirishnomalar eskirgan Intent dan foydalanishda davom etadi.

iOS-da rejalashtirish namunasi

iOS-da lokal bildirishnomalar UNUserNotificationCenter orqali UNMutableNotificationContent va triggerlardan biri yordamida yaratiladi. Rejalashtirishdan oldin foydalanuvchidan ruxsat so'rash kerak.

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 = "Vazifa eslatmasi"
content.body = "Hisobotni 18:00 gacha tugatishni unutmang"
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 tagacha bir vaqtning o'zida lokal bildirishnoma so'rovlarini qo'llab-quvvatlaydi. Agar limit oshib ketgan bo'lsa — tizim faol so'rovlar yetkazilguncha yoki bekor qilinguncha yangi so'rovlarni rad etadi. Joriy navbatni tekshirish uchun getPendingNotificationRequests dan foydalaning.

Delegat javobini qayta ishlash

Foydalanuvchi iOS lokal bildirishnomasi bilan o'zaro aloqada bo'lganda, UNUserNotificationCenterDelegate delegatining userNotificationCenter:didReceive response metodi chaqiriladi. Bu metodda so'rov identifikatori, actionIdentifier (qaysi tugma bosilgan) va maxsus userInfo mavjud. Bu bildirishnomaning oddiy ochilishini aniq harakat tugmasini bosishdan farqlash imkonini beradi.

Lokal bildirishnomalarning eng yaxshi amaliyotlari

Lokal bildirishnomalar foydali bo'lishi va foydalanuvchini bezovta qilmasligi uchun bir nechta asosiy qoidalarga rioya qiling. Birinchisi: chastotani nazorat qiling — kritik bo'lmagan hodisalar uchun kuniga 2–3 ta bildirishnomadan ko'p bo'lmasin, aks holda foydalanuvchi barcha bildirishnomalarni o'chiradi.

Ikkinchisi: foydalanuvchiga tanlov bering. Interfeysda ma'lum turdagi lokal bildirishnomalarni o'chirish imkoniyatini qo'shing. Android-da buning uchun past importance bilan alohida NotificationChannel ishlatish qulay, iOS-da — ilova sozlamalarida alohida kategoriya.

Uchinchisi: kontekstual tegishlilik — bildirishnoma foydalanuvchiga kerak bo'lgan paytda paydo bo'lishi kerak. Geo-triggerlar uy yaqinidagi ishlarni eslatish uchun ideal, kalendar triggerlari — uchrashuvlar uchun, interval triggerlari — suv ichish yoki cho'zilish kabi muntazam harakatlar uchun. Turlarni keraksiz aralashtirmang.

To'rtinchisi: haqiqiy qurilmalarda sinab ko'ring. iOS simulyatori lokal bildirishnomalarni yetkazib berishning barcha stsenariylarini, ayniqsa fonda, emulyatsiya qilmaydi. Android-da rejalashtirilgan bildirishnomalar navbatini va ularning parametrlarini tekshirish uchun adb shell dumpsys notification dan foydalaning. Beshinchisi: har doim foydalanuvchiga ilova interfeysi orqali bildirishnomalarni o'chirish imkoniyatini bering — bu UX va App Store Review Guidelines uchun majburiy talabdir.

Tez-tez so'raladigan savollar

Lokal bildirishnoma push dan qanday farq qiladi?

Lokal bildirishnoma server ishtirokisiz qurilma tomonidan rejalashtiriladi va yetkaziladi. Push bildirishnomasi tashqi xizmat (FCM, APNS) va internet aloqasini talab qiladi. Lokal bildirishnomalar oflayn ishlaydi, push — faqat tarmoq mavjud bo'lganda.

Qancha lokal bildirishnomani rejalashtirish mumkin?

iOS 64 tagacha bir vaqtda rejalashtirilgan so'rov bilan cheklaydi. Android qat'iy cheklovga ega emas, lekin 500 dan ortiq bildirishnoma tizim samaradorligini pasaytirishi va yetkazish vaqtiga ta'sir qilishi mumkin.

Rejalashtirishdan keyin lokal bildirishnomani bekor qilish mumkinmi?

Ha, iOS-da so'rov identifikatori bilan removePendingNotificationRequests dan foydalaning. Android-da NotificationManager.cancel ni chaqiring yoki AlarmManager orqali PendingIntent ni bekor qiling. Bekor qilish uchun noyob identifikator majburiydir.

Lokal bildirishnomalar uchun foydalanuvchi ruxsati kerakmi?

iOS-da ruxsat majburiy ravishda requestAuthorization orqali so'raladi. Android 13+ (Tiramisu) da ham POST_NOTIFICATIONS ruxsati talab qilinadi. Androidning eski versiyalari lokal bildirishnomalar uchun aniq ruxsat talab qilmaydi.

Lokal bildirishnomaga tugmalarni qanday qo'shish mumkin?

iOS-da UNNotificationAction yarating va UNNotificationCategory ga qo'shing. Android-da BroadcastReceiver uchun PendingIntent bilan NotificationCompat.Builder.addAction dan foydalaning. Har bir tugma ilovada alohida harakatni ishga tushiradi.

Xulosa

  • Lokal bildirishnomalar — server infratuzilmasisiz qurilma tomonidan rejalashtirilgan va yetkazilgan xabarlar
  • UNUserNotificationCenter — iOS-da lokal bildirishnomalar bilan ishlash uchun asosiy API
  • NotificationManager — Android-da lokal bildirishnomalar bilan ishlash uchun asosiy API
  • Trigger turlari — vaqt oralig'i, kalendar sanasi, geolokatsiya va shartsiz yetkazish
  • Limitlar — iOS 64 rejalashtirilgan so'rov bilan cheklaydi, Android qat'iy cheklovga ega emas
  • Ruxsatlar — iOS va Android 13+ da bildirishnomalarni ko'rsatish uchun foydalanuvchining aniq roziligi talab qilinadi
  • Oflayn — lokal bildirishnomalar internet aloqasisiz ishlaydi, bu ularni push dan ishonchliroq qiladi

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.

Loyihani muhokama qilish

Shuningdek o'qing