Rich Notification: bu nima, media kontent va bildirishnomalar yaratish

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

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

  • Media qo‘shimchalar — Rich Notification UNNotificationAttachment orqali rasmlar (JPEG, PNG, GIF), videolar (MP4, MOV 30 soniyagacha) va audiolarni (MP3, AAC, WAV) qo‘llab-quvvatlaydi.
  • Interaktivlik — tugmalar va matn kiritish bildirishnoma kategoriyalariga bog‘langan UNNotificationAction va UNTextInputNotificationAction orqali qo‘shiladi.
  • Service Extension — media yuklash uchun majburiy komponent: u payloaddagi URL dan qo‘shimchani yuklab oladi va kontentga qo‘shadi.
  • Content Extension — ixtiyoriy UI, animatsiyalar va imo-ishoralarni boshqarish bilan to‘liq moslashtirilgan bildirishnoma interfeysini yaratadi.
  • Cheklovlar — maksimal qo‘shimcha hajmi 10 MB, kengaytma xotira chegarasi 50 MB, ishlov berish vaqti 30 soniyagacha.

Rich Notification nima

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.

iOS da bildirishnomalar evolyutsiyasi

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.

Standart bildirishnomalardan afzalliklari

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.

Media qo‘shimcha turlari va ularning formatlari

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 turiQo‘llab-quvvatlanadigan formatlarMaksimal hajm
RasmlarJPEG, PNG, GIF, TIFF10MB fayl uchun
VideoMPEG, MP4, MOV10 MB, 30 soniyagacha
AudioMP3, AAC, WAV, CAF10 MB

Rasmlar va animatsiyalangan GIF

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.

Video va audio qo‘shimchalar

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 tugmalar va harakatlar

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 va UNTextInputNotificationAction

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.

Kategoriyalar va harakatlarni ro‘yxatdan o‘tkazish

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.

Tugma bosishlarni qayta ishlash

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 ni Swift da amalga oshirish

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.

swift
// 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
}

Rasm yuklash uchun Service Extension

“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.

swift
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 test qilish

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.

Content Extension va moslashtirilgan interfeys

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.

Storyboard va SwiftUI Content Extension da

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.

Foydalanuvchi harakatlarini qayta ishlash

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.

Dizayn bo‘yicha tavsiyalar

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

Rich Notification da rasmning maksimal hajmi qancha?

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 barcha iPhone modellarida ishlaydimi?

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.

Rich Notification da GIF dan foydalanish mumkinmi?

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.

Bildirishnomaga nechta tugma qo‘shish mumkin?

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.

Rich Notification yuborish uchun server kerakmi?

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

  • Rich Notification — foydalanuvchi faolligini oshiruvchi media qo‘shimchalar, interaktiv tugmalar va maxsus UI bilan iOS push bildirishnomasi.
  • Qo‘llab-quvvatlanadigan media — JPEG/PNG/GIF rasmlar, MP4/MOV videolar (30 soniyagacha), MP3/AAC/WAV audio, fayl uchun 10 MB cheklov.
  • Service Extension payload dagi URL dan media yuklab oladi va bildirishnoma kontentiga UNNotificationAttachment qo‘shadi.
  • Interaktiv harakatlar — kategoriya uchun 4 tagacha tugma, shu jumladan UNTextInputNotificationAction orqali matn kiritish.
  • Content Extension standart interfeysni ixtiyoriy elementlar bilan maxsus UIKit/SwiftUI ko‘rinishi bilan almashtiradi.
  • Content Extension bosishlarni qayta ishlash va UI ni real vaqtda yangilash uchun didReceive metodi bilan UNNotificationContentExtension protokolini amalga oshiradi.
  • Rich Notification barcha darajalarda sozlashni talab qiladi: server (APNS), Service Extension (media yuklash) va AppDelegate (kategoriyalarni ro‘yxatdan o‘tkazish).

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