Rich Notification — bu foydalanuvchi tajribasini yaxshilash uchun media qo‘shimchalar, interaktiv tugmalar va maxsus interfeyslarni o‘z ichiga olgan kengaytirilgan iOS push bildirishnoma formatidir. Standart matn bildirishnomalaridan farqli o‘laroq, Rich Notification bannerda yoki qulflash ekranida to‘g‘ridan-to‘g‘ri rasmlar, videolar va audiolarni ko‘rsatishi mumkin. Apple Developer Documentation, 2026 ma’lumotlariga ko‘ra, UNNotificationAttachment bitta bildirishnomada 10 tagacha faylni qo‘llab-quvvatlaydi va ularni barcha qurilmalarda optimal ko‘rsatish uchun avtomatik ravishda masshtablaydi.
Asosiy fikrlar
Rich Notification — bu nafaqat matn, balki media qo‘shimchalar, interaktiv elementlar va moslashtirilgan interfeysni o‘z ichiga olgan iOS push bildirishnomasidir. “Rich” (boy) atamasi bildirishnomaga rasmlar, videolar, audio, harakat tugmalari va matn kiritishni qo‘shish imkoniyatini aks ettiradi, bu oddiy ogohlantirishni to‘liq interaktiv elementga aylantiradi.
Apple Rich Notification qo‘llab-quvvatlashni iOS 10 da UserNotifications frameworki bilan birga joriy qildi. Bundan oldin push bildirishnomalari faqat matn, tovush va badge ni o‘z ichiga olishi mumkin edi. iOS 10 UNNotificationServiceExtension va UNNotificationContentExtension ni taqdim etdi, ular kontentni o‘zgartirish va moslashtirilgan interfeyslarni yaratish imkoniyatini ochdi. Keyingi versiyalarda Content Extension da SwiftUI qo‘llab-quvvatlashi, animatsiyalangan GIF va yaxshilangan media masshtablash qo‘shildi.
Rich Notification foydalanuvchi faolligini sezilarli darajada oshiradi. Apple tadqiqotlari shuni ko‘rsatadiki, rasmlar bilan bildirishnomalar matnli bildirishnomalarga nisbatan 30–40% ko‘proq o‘zaro ta’sir oladi. Mahsulot rasmi, video ko‘rinishi yoki tezkor javob tugmasi foydalanuvchiga dasturni ochmasdan to‘g‘ridan-to‘g‘ri bildirishnomadan qaror qabul qilish imkonini beradi. Bu maqsadli harakatga yo‘lni qisqartiradi va foydalanuvchi tajribasini yaxshilaydi.
UNNotificationAttachment uchta media kategoriyasini qo‘llab-quvvatlaydi: rasmlar, videolar va audio. Har bir tur format, hajm va davomiylik bo‘yicha o‘z cheklovlariga ega. Tizim ishlashni optimallashtirish uchun rasmlarni bildirishnoma hajmiga avtomatik ravishda masshtablaydi va video davomiyligini 30 soniya bilan cheklaydi.
| Media turi | Qo‘llab-quvvatlanadigan formatlar | Maksimal hajm |
|---|---|---|
| Rasmlar | JPEG, PNG, GIF, TIFF | 10MB fayl uchun |
| Video | MPEG, MP4, MOV | 10 MB, 30 soniyagacha |
| Audio | MP3, AAC, WAV, CAF | 10 MB |
Rasmlar tizim tomonidan bildirishnomaning ixcham va kengaytirilgan ko‘rinishida ko‘rsatish uchun avtomatik ravishda kesiladi va masshtablanadi. Animatsiyalangan GIF iOS 12 dan boshlab qo‘llab-quvvatlanadi va bildirishnomani ko‘rishda avtomatik ravishda ijro etiladi. Tavsiya etiladigan rasm hajmi 1024x1024 pikselni tashkil etadi, bu katta ekranli iPad ni ham o‘z ichiga olgan holda barcha qurilmalarda aniq ko‘rsatishni ta’minlaydi.
Rich Notification dagi video sukut bo‘yicha tovushsiz ijro etiladi — foydalanuvchi pleyerdagi tugma orqali tovushni yoqishi mumkin. Maksimal video davomiyligi 30 soniyani tashkil etadi, shundan so‘ng ijro to‘xtatiladi. Audio qo‘shimchalar ovozli xabarlar yoki tovush ko‘rinishlari uchun ishlatilishi mumkin va bildirishnomaga kengaytirilgan ko‘rinishda tegilganda ijro etiladi.
Interaktiv harakatlar foydalanuvchiga dasturni ochmasdan to‘g‘ridan-to‘g‘ri bildirishnomadan operatsiyalarni bajarish imkonini beradi. Harakatlar dastur ishga tushirilganda UNNotificationCategory va UNNotificationAction orqali ro‘yxatdan o‘tkaziladi. Har bir harakat fon (dasturni ochmasdan) yoki oldingi planda (operatsiyani yakunlash uchun dasturni ochadi) bo‘lishi mumkin.
UNNotificationAction sarlavhali va requiresAuthentication (Face ID/Touch ID talab qiladi) yoki destructive (qizil rang bilan ajratilgan) kabi ixtiyoriy modifikatorlarga ega tugmadir. UNTextInputNotification Action bu imkoniyatni matn kiritish maydonini qo‘shish orqali kengaytiradi — xabar yoki sharhga tezkor javob berish uchun ideal. Harakatlar bildirishnomani uzoq bosish yoki pastga surish orqali ko‘rsatiladi.
Bildirishnoma kategoriyalari kontent turini mavjud harakatlar to‘plami bilan bog‘laydi. Ro‘yxatdan o‘tkazish jarayoni dastur ishga tushirilganda AppDelegate da UNUserNotificationCenter.current().setNotificationCategories orqali amalga oshiriladi. Kategoriya serverda JSON payload ning category maydonida ko‘rsatiladi va tizim avtomatik ravishda tegishli harakatlar to‘plamini bildirishnomaga qo‘llaydi.
Foydalanuvchi tugmani bossa yoki matn yuborsa, tizim didReceive response metodi bilan UNUserNotificationCenterDelegate ni chaqiradi. UNNotificationResponse harakat identifikatori va kiritilgan matnni (UNTextInputNotificationAction uchun) o‘z ichiga oladi. Ushbu ma’lumot asosida dastur tegishli biznes mantiqni bajaradi: xabar yuboradi, harakatni tasdiqlaydi yoki ma’lum ekranni ochadi.
Rich Notification yaratishning to‘liq siklini ko‘rib chiqamiz: AppDelegate da kategoriyalarni ro‘yxatdan o‘tkazishdan Service Extension da qayta ishlash va ko‘rsatishgacha. AppDelegate tugmalar bilan kategoriyani ro‘yxatdan o‘tkazadi, server rasm URL i bilan bildirishnoma yuboradi, Service Extension media yuklaydi va Content Extension tugmalar bilan moslashtirilgan interfeysni ko‘rsatadi.
// AppDelegate — kategoriyalar va harakatlarni ro‘yxatdan o‘tkazish
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "Javob berish",
options: [.authenticationRequired])
let likeAction = UNNotificationAction(
identifier: "like",
title: "Yoqdi",
options: [])
let category = UNNotificationCategory(
identifier: "social_post",
actions: [replyAction, likeAction],
intentIdentifiers: [],
options: [])
UNUserNotificationCenter.current()
.setNotificationCategories([category])
return true
}
“social_post” kategoriyasi va maxsus maydonda rasm URL i bilan push bildirishnomasi olingandan so‘ng, Service Extension faollashadi. Kengaytma rasmni tarmoq orqali yuklab oladi, noyob identifikator bilan UNNotificationAttachment yaratadi va uni kontentga qo‘shadi. Yuklangan fayl hajmini tekshirish muhim — agar u 10 MB dan oshsa, attachment yaratilmaydi va tizim bildirishnomani mediasiz ko‘rsatadi.
class NotificationService: UNNotificationServiceExtension {
override func didReceive(
_ request: UNNotificationRequest,
withContentHandler contentHandler:
@escaping (UNNotificationContent) -> Void
) {
let content = (request.content.mutableCopy()
as! UNMutableNotificationContent)
guard let urlString = content.userInfo["media-url"]
as? String,
let url = URL(string: urlString)
else { contentHandler(request.content); return }
URLSession.shared.downloadTask(with: url) {
location, _, _ in
guard let location = location else {
contentHandler(content); return }
let attachment = try! UNNotificationAttachment(
identifier: "media", url: location,
options: [UNNotificationAttachmentOptionsTypeHintKey:
"jpg"])
content.attachments = [attachment]
contentHandler(content)
}.resume()
}
}
Rich Notification ni serversiz test qilish uchun iOS simulyatoridan foydalaning va terminal orqali xcrun simctl push bilan push yuboring. Payload da Service Extension ni faollashtirish uchun mutable-content: 1 va harakatlarni ko‘rsatish uchun category ni belgilash shart. Buyruq JSON fayldan to‘g‘ridan-to‘g‘ri tanlangan simulyatorga push yuboradi, bu server infratuzilmasini sozlamasdan tezkor iteratsiyani imkonini beradi.
UNNotificationContentExtension standart bildirishnoma interfeysini to‘liq ixtiyoriy UIKit yoki SwiftUI ko‘rinishi bilan almashtirish imkonini beradi. Kengaytma foydalanuvchi bildirishnomani kengaytirganda (force touch yoki pastga surish) faollashadi va tugmalar, slayderlar, animatsiyalar va boshqa UI komponentlarini o‘z ichiga olishi mumkin. Interfeys hajmi Auto Layout yordamida kontentga moslashadi.
Content Extension UIViewController dan meros olgan ko‘rinish bilan storyboard ga asoslanadi. SwiftUI View iOS 16 dan boshlab UIHostingController orqali integratsiya qilinadi, bu interfeysni qurishda zamonaviy yondashuvlardan foydalanish imkonini beradi. iOS 14–15 bilan orqaga qarab muvofiqlik uchun xib fayllari bilan UIKit dan foydalanish tavsiya etiladi. Interfeys Service Extension dan o‘zgartirilgan kontentni UNNotificationContent orqali oladi.
Content Extension didReceive response metodi bilan UNNotificationContentExtension protokolini amalga oshiradi. UNNotificationResponse bosilgan tugma yoki kiritilgan matn haqida ma’lumotni o‘z ichiga oladi. Kengaytma bildirishnomani yopmasdan interfeysni yangilashi yoki uni yopish uchun completion handler ni chaqirishi mumkin. Bu to‘g‘ridan-to‘g‘ri bildirishnomada vizual geribildirim bilan “like” kabi tezkor o‘zaro ta’sir stsenariylarini yaratish imkonini beradi.
Apple Content Extension ixcham va funksional bo‘lishini, ortiqcha elementlardan qochishni tavsiya qiladi. Kengaytirilgan bildirishnomaning maksimal balandligi taxminan 400 nuqtani tashkil qiladi, undan so‘ng kontent aylantiriladi. Boshqa bildirishnomalar bilan bir xillik uchun tizim shriftlari va bo‘shliqlaridan foydalaning. Interfeys iPhone da ham, iPad da ham to‘g‘ri ko‘rsatilishiga ishonch hosil qilish uchun turli ekran o‘lchamlarida test qiling.
Tez-tez beriladigan savollar
Bitta media qo‘shimchaning maksimal hajmi 10 MB. Cheklov oshib ketganda, UNNotificationAttachment yaratilmaydi va bildirishnoma mediasiz ko‘rsatiladi. Service Extension da tez yuklash uchun rasmlarni 1–3 MB gacha optimallashtirish tavsiya etiladi.
Rich Notification iOS 10 va undan yuqori barcha qurilmalarda, jumladan iPhone 5s va undan yangilarida qo‘llab-quvvatlanadi. Maxsus UI bilan Content Extension iOS 12 dan mavjud. Content Extension da SwiftUI — iOS 16 dan. Eski versiyalarda bildirishnoma standart shaklda ko‘rsatiladi.
Ha, animatsiyalangan GIF iOS 12 dan boshlab qo‘llab-quvvatlanadi. GIF oddiy rasm sifatida UNNotificationAttachment orqali yuklab olinadi va bildirishnomani ko‘rishda avtomatik ravishda ijro etiladi. GIF hajmi boshqa formatlar kabi 10 MB bilan cheklangan.
Kategoriyani ro‘yxatdan o‘tkazishda bitta bildirishnoma uchun maksimal 4 ta harakat. Ko‘proq bo‘lsa, tizim dastlabki 4 tasini ko‘rsatadi, qolganlarini e‘tiborga olmaydi. Optimal UX uchun 2–3 ta tugmadan foydalanish tavsiya etiladi — juda ko‘p variantlar interfeysni yuklaydi.
Ha, server maxsus maydonda media fayl URL i va mutable-content: 1 bayrog‘i bilan JSON payload orqali APNS (Apple Push Notification service) orqali push yuborishi kerak. Server shuningdek Content Extension va harakatlarni faollashtirish uchun category ni belgilaydi.
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.