Rich Notification: шта је то, медијски садржај и креирање обавештења

Аутор: IT Sectr Објављено: 2026-03-20 Време читања: 8 мин

Rich Notification је проширени формат iOS push обавештења који укључује медијске прилоге, интерактивна дугмад и прилагођене интерфејсе за побољшање корисничког искуства. За разлику од стандардних текстуалних обавештења, Rich Notification може да приказује слике, видео и аудио директно у банеру или на закључаном екрану. Према Apple Developer Documentation, 2026, UNNotificationAttachment подржава до 10 датотека у једном обавештењу и аутоматски их скалира за оптималан приказ на свим уређајима.

Главно

  • Медијски прилози — Rich Notification подржава слике (JPEG, PNG, GIF), видео (MP4, MOV до 30 секунди) и аудио (MP3, AAC, WAV) преко UNNotificationAttachment.
  • Интерактивност — дугмад и унос текста се додају преко UNNotificationAction и UNTextInputNotificationAction, повезаних са категоријама обавештења.
  • Service Extension — обавезна компонента за преузимање медија: она преузима прилог са URL-а из payload-а и додаје га у садржај.
  • Content Extension — креира потпуно прилагођени интерфејс обавештења са произвољним UI, анимацијама и обрадом гестова.
  • Ограничења — максимална величина прилога 10 MB, ограничење меморије екстензије 50 MB, време обраде до 30 секунди.

Шта је Rich Notification

Rich Notification је iOS push обавештење које садржи не само текст, већ и медијске прилоге, интерактивне елементе и прилагођени интерфејс. Термин „rich“ (богат) одражава могућност укључивања слика, видеа, аудио, дугмади за акције и уноса текста у обавештење, што претвара једноставно обавештење у потпуни интерактивни елемент.

Еволуција обавештења у iOS

Apple је увео подршку за Rich Notification у iOS 10 заједно са UserNotifications оквиром. Пре тога, push обавештења су могла да садрже само текст, звук и badge. iOS 10 је представио UNNotificationServiceExtension и UNNotificationContentExtension, који су отворили могућност модификације садржаја и креирања прилагођених интерфејса. У каснијим верзијама додата је подршка за SwiftUI у Content Extension, анимиране GIF-ове и побољшано скалирање медија.

Предности у односу на стандардна обавештења

Rich Notification значајно повећава ангажовање корисника. Apple истраживања показују да обавештења са сликама добијају 30–40% више интеракција у поређењу са текстуалним. Слика производа, преглед видеа или дугме за брзи одговор омогућавају кориснику да донесе одлуку директно из обавештења, без отварања апликације. То скраћује пут до циљне акције и побољшава корисничко искуство.

Врсте медијских прилога и њихови формати

UNNotificationAttachment подржава три категорије медија: слике, видео и аудио. Сваки тип има своја ограничења у погледу формата, величине и трајања. Систем аутоматски скалира слике на величину обавештења и ограничава трајање видеа на 30 секунди ради оптимизације перформанси.

Тип медијаПодржани форматиМаксимална величина
СликеJPEG, PNG, GIF, TIFF10 MB по датотеци
ВидеоMPEG, MP4, MOV10 MB, до 30 секунди
АудиоMP3, AAC, WAV, CAF10 MB

Слике и анимирани GIF

Слике се аутоматски обрезују и скалирају од стране система за приказ у компактном и проширеном приказу обавештења. Анимирани GIF су подржани од iOS 12 и репродукују се аутоматски при прегледу обавештења. Препоручена величина слике је 1024x1024 пиксела, што обезбеђује јасан приказ на свим уређајима, укључујући iPad са великим екраном.

Видео и аудио прилози

Видео у Rich Notification се репродукује без звука подразумевано — корисник може да укључи звук преко дугмета у плејеру. Максимално трајање видеа је 30 секунди, након чега се репродукција зауставља. Аудио прилози се могу користити за гласовне поруке или звучне прегледе и репродукују се при додиру обавештења у проширеном приказу.

Интерактивна дугмад и акције

Интерактивне акције омогућавају кориснику да изврши операције директно из обавештења без отварања апликације. Акције се региструју преко UNNotificationCategory и UNNotificationAction при покретању апликације. Свака акција може бити у позадини (без отварања апликације) или у предњем плану (отвара апликацију за довршавање операције).

UNNotificationAction и UNTextInputNotificationAction

UNNotificationAction представља дугме са насловом и опционим модификаторима, као што су requiresAuthentication (захтева Face ID/Touch ID) или destructive (истакнуто црвеном бојом). UNTextInputNotificationAction проширује ову могућност додавањем поља за унос текста — идеално за брзи одговор на поруку или коментар. Акције се приказују при дугом притиску на обавештење или превлачењу надоле.

Регистрација категорија и акција

Категорије обавештења повезују тип садржаја са скупом доступних акција. Процес регистрације се извршава у AppDelegate при покретању апликације преко UNUserNotificationCenter.current().setNotificationCategories. Категорија се наводи на серверу у пољу category JSON payload-а, а систем аутоматски примењује одговарајући скуп акција на обавештење.

Обрада кликова на акције

Када корисник кликне дугме или пошаље текст, систем позива делегата UNUserNotificationCenterDelegate са методом didReceive response. UNNotificationResponse садржи идентификатор акције и унети текст (за UNTextInputNotificationAction). На основу ових информација, апликација извршава одговарајућу пословну логику: шаље поруку, потврђује акцију или отвара одређени екран.

Имплементација Rich Notification у Swift

Размотримо комплетан циклус креирања Rich Notification: од регистрације категорија у AppDelegate до обраде у Service Extension и приказа. AppDelegate региструје категорију са дугмадима, сервер шаље обавештење са URL-ом слике, Service Extension преузима медије, а Content Extension приказује прилагођени интерфејс са дугмадима.

swift
// AppDelegate — регистрација категорија и акција
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
    [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {

    let replyAction = UNTextInputNotificationAction(
        identifier: "reply",
        title: "Одговори",
        options: [.authenticationRequired])

    let likeAction = UNNotificationAction(
        identifier: "like",
        title: "Свиђа ми се",
        options: [])

    let category = UNNotificationCategory(
        identifier: "social_post",
        actions: [replyAction, likeAction],
        intentIdentifiers: [],
        options: [])

    UNUserNotificationCenter.current()
        .setNotificationCategories([category])
    return true
}

Service Extension за преузимање слике

Након пријема push обавештења са категоријом „social_post“ и URL-ом слике у прилагођеном пољу, активира се Service Extension. Екстензија преузима слику преко мреже, креира UNNotificationAttachment са јединственим идентификатором и додаје га у садржај. Важно је проверити величину преузете датотеке — ако прелази 10 MB, attachment неће бити креиран и систем ће приказати обавештење без медија.

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

За тестирање Rich Notification без сервера, користите iOS симулатор и шаљите push преко терминала помоћу xcrun simctl push. У payload-у обавезно наведите mutable-content: 1 за активацију Service Extension и category за приказ акција. Команда покреће push из JSON датотеке директно на изабрани симулатор, што омогућава брзу итерацију без подешавања серверске инфраструктуре.

Content Extension и прилагођени интерфејс

UNNotificationContentExtension омогућава потпуну замену стандардног интерфејса обавештења произвољним UIKit или SwiftUI приказом. Екстензија се активира када корисник прошири обавештење (force touch или превлачење надоле) и може да садржи дугмад, клизаче, анимације и било које друге UI компоненте. Величина интерфејса се прилагођава садржају помоћу Auto Layout-а.

Storyboard и SwiftUI у Content Extension

Content Extension се заснива на storyboard-у са приказом који наслеђује UIViewController. SwiftUI View се интегрише преко UIHostingController-а од iOS 16, што омогућава коришћење савремених приступа за изградњу интерфејса. За уназадну компатибилност са iOS 14–15, препоручује се коришћење UIKit-а са xib датотекама. Интерфејс добија модификовани садржај од Service Extension-а преко UNNotificationContent-а.

Обрада корисничких акција

Content Extension имплементира протокол UNNotificationContentExtension са методом didReceive response. UNNotificationResponse садржи информације о притиснутом дугмету или унетом тексту. Екстензија може да ажурира интерфејс без затварања обавештења или да позове completion handler за његово затварање. Ово омогућава креирање сценарија брзе интеракције, као што је „лајк“ са визуелном повратном спрегом директно у обавештењу.

Препоруке за дизајн

Apple препоручује да Content Extension буде концизан и функционалан, избегавајући сувишне елементе. Максимална висина проширеног обавештења је око 400 тачака, након чега се садржај помера. Користите системске фонтове и размаке за уједначеност са другим обавештењима. Тестирајте на различитим величинама екрана да бисте се уверили да се интерфејс исправно приказује и на iPhone-у и на iPad-у.

Често постављана питања

Која је максимална величина слике у Rich Notification?

Максимална величина једног медијског прилога је 10 MB. При прекорачењу лимита, UNNotificationAttachment се не креира и обавештење се приказује без медија. Препоручује се оптимизација слика на 1–3 MB за брзо преузимање у Service Extension-у.

Да ли Rich Notification ради на свим моделима iPhone-а?

Rich Notification је подржан на свим уређајима са iOS 10 и новијим, укључујући iPhone 5s и новије. Content Extension са прилагођеним UI доступан је од iOS 12. SwiftUI у Content Extension-у — од iOS 16. На старијим верзијама обавештење се приказује у стандардном облику.

Може ли се користити GIF у Rich Notification?

Да, анимирани GIF су подржани од iOS 12. GIF се преузима преко UNNotificationAttachment као обична слика и аутоматски се репродукује при прегледу обавештења. Величина GIF-а је ограничена на истих 10 MB као и остали формати.

Колико дугмади се може додати обавештењу?

Максимум 4 акције по обавештењу при регистрацији категорије. При већем броју систем приказује прве 4, остале игнорише. Препоручује се коришћење 2–3 дугмета за оптималан UX — превише опција преоптерећује интерфејс.

Да ли је потребан сервер за слање Rich Notification?

Да, сервер мора да шаље push преко APNS (Apple Push Notification service) са JSON payload-ом који садржи URL медијске датотеке у прилагођеном пољу и заставу mutable-content: 1. Сервер такође наводи category за активацију Content Extension-а и акција.

Резиме

  • Rich Notification — iOS push обавештење са медијским прилозима, интерактивним дугмадима и прилагођеним UI, које повећава ангажовање корисника.
  • Подржани медији — JPEG/PNG/GIF слике, MP4/MOV видео (до 30 с), MP3/AAC/WAV аудио са лимитом од 10 MB по датотеци.
  • Service Extension преузима медије са URL-а из payload-а и додаје UNNotificationAttachment у садржај обавештења.
  • Интерактивне акције — до 4 дугмета по категорији, укључујући унос текста преко UNTextInputNotificationAction.
  • Content Extension замењује стандардни интерфејс прилагођеним UIKit/SwiftUI приказом са произвољним елементима.
  • Content Extension имплементира протокол UNNotificationContentExtension са методом didReceive за обраду кликова и ажурирање UI у реалном времену.
  • Rich Notification захтева конфигурацију на свим нивоима: сервер (APNS), Service Extension (преузимање медија) и AppDelegate (регистрација категорија).

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође