Rich Notification: mi ez, média tartalom és értesítések létrehozása

Szerző: IT Sectr Megjelenés: 2026-03-20 Olvasási idő: 8 perc

A Rich Notification az iOS push értesítések bővített formátuma, amely média mellékleteket, interaktív gombokat és egyedi felületeket tartalmaz a felhasználói élmény javítása érdekében. A szabványos szöveges értesítésekkel ellentétben a Rich Notification képeket, videókat és hangot tud megjeleníteni közvetlenül a bannerben vagy a zárolási képernyőn. A Apple Developer Documentation, 2026 szerint az UNNotificationAttachment akár 10 fájlt is támogat egy értesítésben, és automatikusan méretezi őket az optimális megjelenítéshez az összes eszközön.

Főbb pontok

  • Média mellékletek — A Rich Notification képeket (JPEG, PNG, GIF), videókat (MP4, MOV akár 30 másodpercig) és hangot (MP3, AAC, WAV) támogat az UNNotificationAttachment segítségével.
  • Interaktivitás — a gombok és szöveges bevitel az UNNotificationAction és UNTextInputNotificationAction segítségével adhatók hozzá, értesítési kategóriákhoz kötve.
  • Service Extension — kötelező komponens a média letöltéséhez: ez tölti le a mellékletet a payload URL-jéből és adja hozzá a tartalomhoz.
  • Content Extension — teljesen egyedi értesítési felületet hoz létre tetszőleges UI-val, animációkkal és gesztuskezeléssel.
  • Korlátok — maximális mellékletméret 10 MB, a bővítmény memóriakorlátja 50 MB, feldolgozási idő akár 30 másodperc.

Mi az a Rich Notification

Rich Notification egy iOS push értesítés, amely nemcsak szöveget, hanem média mellékleteket, interaktív elemeket és testreszabott felületet is tartalmaz. A „rich“ (gazdag) kifejezés azt a képességet tükrözi, hogy az értesítésbe képek, videók, hang, műveleti gombok és szöveges bevitel is belefoglalható, ami az egyszerű figyelmeztetést teljes értékű interaktív elemmé változtatja.

Az értesítések evolúciója iOS-ben

Az Apple az iOS 10-ben vezette be a Rich Notification támogatását a UserNotifications keretrendszerrel együtt. Előtte a push értesítések csak szöveget, hangot és jelvényt tartalmazhattak. Az iOS 10 bemutatta az UNNotificationServiceExtension-t és UNNotificationContentExtension-t, amelyek megnyitották a tartalom módosításának és az egyedi felületek létrehozásának lehetőségét. A későbbi verziókban hozzáadták a SwiftUI támogatást a Content Extension-ben, az animált GIF-eket és a továbbfejlesztett média méretezést.

Előnyök a szabványos értesítésekkel szemben

A Rich Notification jelentősen növeli a felhasználói elköteleződést. Az Apple kutatásai szerint a képeket tartalmazó értesítések 30–40%-kal több interakciót kapnak a szövegesekhez képest. Egy termékkép, videó előnézet vagy gyorsválasz gomb lehetővé teszi a felhasználónak, hogy közvetlenül az értesítésből hozzon döntést anélkül, hogy megnyitná az alkalmazást. Ez lerövidíti a célművelethez vezető utat és javítja a felhasználói élményt.

Média mellékletek típusai és formátumaik

UNNotificationAttachment három médiakategóriát támogat: képek, videók és hang. Minden típusnak megvannak a saját korlátai formátum, méret és időtartam tekintetében. A rendszer automatikusan méretezi a képeket az értesítés méretére, és 30 másodpercre korlátozza a videó időtartamát a teljesítmény optimalizálása érdekében.

Média típusaTámogatott formátumokMaximális méret
KépekJPEG, PNG, GIF, TIFF10 MB fájlonként
VideóMPEG, MP4, MOV10 MB, akár 30 másodperc
HangMP3, AAC, WAV, CAF10 MB

Képek és animált GIF-ek

A képeket a rendszer automatikusan vágja és méretezi az értesítés kompakt és kibővített nézetében való megjelenítéshez. Animált GIF-ek iOS 12-től támogatottak és automatikusan lejátszódnak az értesítés megtekintésekor. Az ajánlott képméret 1024x1024 pixel, ami tiszta megjelenítést biztosít minden eszközön, beleértve a nagy képernyős iPad-et is.

Videó és hang mellékletek

A videó a Rich Notification-ben alapértelmezetten hang nélkül játszódik le — a felhasználó a lejátszó gombjával kapcsolhatja be a hangot. A videó maximális időtartama 30 másodperc, utána a lejátszás megáll. A hang mellékletek használhatók hangüzenetekhez vagy hang előnézetekhez, és az értesítés kibővített nézetben történő megérintésekor játszódnak le.

Interaktív gombok és műveletek

Interaktív műveletek lehetővé teszik a felhasználónak, hogy műveleteket hajtson végre közvetlenül az értesítésből anélkül, hogy megnyitná az alkalmazást. A műveletek az UNNotificationCategory és UNNotificationAction segítségével regisztrálódnak az alkalmazás indításakor. Minden művelet lehet háttérben futó (az alkalmazás megnyitása nélkül) vagy előtérben futó (megnyitja az alkalmazást a művelet befejezéséhez).

UNNotificationAction és UNTextInputNotificationAction

Az UNNotificationAction egy gomb címmel és opcionális módosítókkal, mint a requiresAuthentication (Face ID/Touch ID szükséges) vagy destructive (piros színnel kiemelve). UNTextInputNotificationAction kibővíti ezt a képességet egy szövegbeviteli mező hozzáadásával — ideális gyors válaszhoz üzenetre vagy megjegyzésre. A műveletek az értesítés hosszú megnyomásával vagy lefelé húzással jelennek meg.

Kategóriák és műveletek regisztrálása

Az értesítési kategóriák összekötik a tartalom típusát a rendelkezésre álló műveletek halmazával. A regisztrációs folyamat az AppDelegate-ben történik az alkalmazás indításakor az UNUserNotificationCenter.current().setNotificationCategories segítségével. A kategória a szerveren a JSON payload category mezőjében kerül megadásra, és a rendszer automatikusan alkalmazza a megfelelő műveletkészletet az értesítésre.

Műveletekre kattintások kezelése

Amikor a felhasználó rákattint egy gombra vagy szöveget küld, a rendszer meghívja az UNUserNotificationCenterDelegate delegáltat a didReceive response metódussal. UNNotificationResponse tartalmazza a művelet azonosítóját és a beírt szöveget (UNTextInputNotificationAction esetén). Ezen információk alapján az alkalmazás végrehajtja a megfelelő üzleti logikát: üzenetet küld, megerősíti a műveletet vagy megnyit egy adott képernyőt.

Rich Notification implementálása Swiftben

Nézzük meg a Rich Notification létrehozásának teljes ciklusát: a kategóriák regisztrálásától az AppDelegate-ben a Service Extension-ben történő feldolgozáson át a megjelenítésig. AppDelegate regisztrálja a kategóriát gombokkal, a szerver elküldi az értesítést a kép URL-jével, a Service Extension letölti a médiát, és a Content Extension megjeleníti az egyedi felületet gombokkal.

swift
// AppDelegate — kategóriák és műveletek regisztrálása
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
    [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {

    let replyAction = UNTextInputNotificationAction(
        identifier: "reply",
        title: "Válasz",
        options: [.authenticationRequired])

    let likeAction = UNNotificationAction(
        identifier: "like",
        title: "Tetszik",
        options: [])

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

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

Service Extension a kép letöltéséhez

A „social_post” kategóriájú és az egyedi mezőben kép URL-t tartalmazó push értesítés fogadása után a Service Extension aktiválódik. A bővítmény letölti a képet a hálózaton keresztül, létrehoz egy UNNotificationAttachment-et egyedi azonosítóval, és hozzáadja a tartalomhoz. Fontos ellenőrizni a letöltött fájl méretét — ha meghaladja a 10 MB-ot, a melléklet nem jön létre, és a rendszer média nélkül jeleníti meg az értesítést.

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 tesztelése

A Rich Notification szerver nélküli teszteléséhez használja az iOS szimulátort, és küldjön push-t a terminálon keresztül a xcrun simctl push segítségével. A payload-ban kötelező megadni a mutable-content: 1-et a Service Extension aktiválásához és a category-t a műveletek megjelenítéséhez. A parancs egy JSON fájlból közvetlenül a kiválasztott szimulátorra küld push-t, lehetővé téve a gyors iterációt a szerver infrastruktúra beállítása nélkül.

Content Extension és egyedi felület

UNNotificationContentExtension lehetővé teszi az értesítés szabványos felületének teljes lecserélését egy tetszőleges UIKit vagy SwiftUI nézetre. A bővítmény akkor aktiválódik, amikor a felhasználó kibontja az értesítést (force touch vagy lefelé húzás), és tartalmazhat gombokat, csúszkákat, animációkat és egyéb UI komponenseket. A felület mérete az Auto Layout segítségével igazodik a tartalomhoz.

Storyboard és SwiftUI a Content Extension-ben

A Content Extension egy storyboard-on alapul, egy UIViewController-ből származó nézettel. SwiftUI View iOS 16-tól integrálható az UIHostingController segítségével, ami lehetővé teszi a modern felületépítési megközelítések használatát. Az iOS 14–15-tel való visszafelé kompatibilitáshoz az UIKit használata javasolt xib fájlokkal. A felület a módosított tartalmat a Service Extension-től kapja az UNNotificationContent segítségével.

Felhasználói műveletek kezelése

A Content Extension implementálja az UNNotificationContentExtension protokollt a didReceive response metódussal. UNNotificationResponse információkat tartalmaz a megnyomott gombról vagy a beírt szövegről. A bővítmény frissítheti a felületet az értesítés bezárása nélkül, vagy meghívhat egy completion handler-t a bezáráshoz. Ez lehetővé teszi gyors interakciós forgatókönyvek létrehozását, például „like” vizuális visszajelzéssel közvetlenül az értesítésben.

Design ajánlások

Az Apple azt javasolja, hogy a Content Extension legyen tömör és funkcionális, kerülve a felesleges elemeket. A kibontott értesítés maximális magassága körülbelül 400 pont, utána a tartalom görgethető. Használja a rendszer betűtípusait és térközeit az egységesség érdekében más értesítésekkel. Tesztelje különböző képernyőméreteken, hogy a felület helyesen jelenjen meg mind iPhone-on, mind iPad-en.

Gyakran Ismételt Kérdések

Mekkora a maximális képméret a Rich Notification-ben?

Egy média melléklet maximális mérete 10 MB. A határ túllépése esetén az UNNotificationAttachment nem jön létre, és az értesítés média nélkül jelenik meg. Javasolt a képek optimalizálása 1–3 MB-ra a gyors letöltés érdekében a Service Extension-ben.

Működik a Rich Notification az összes iPhone modellen?

A Rich Notification minden iOS 10 vagy újabb rendszerű eszközön támogatott, beleértve az iPhone 5s és újabb modelleket. A Content Extension egyedi UI-val iOS 12-től érhető el. SwiftUI a Content Extension-ben — iOS 16-tól. Régebbi verziókon az értesítés szabványos formában jelenik meg.

Használható GIF a Rich Notification-ben?

Igen, az animált GIF iOS 12-től támogatott. A GIF egy szokásos képként töltődik le az UNNotificationAttachment segítségével, és automatikusan lejátszódik az értesítés megtekintésekor. A GIF mérete ugyanarra a 10 MB-ra korlátozott, mint a többi formátum.

Hány gomb adható hozzá egy értesítéshez?

Maximum 4 művelet értesítésenként a kategória regisztrálásakor. Több esetén a rendszer az első 4-et jeleníti meg, a többit figyelmen kívül hagyja. Optimális UX-hez 2–3 gomb használata javasolt — túl sok opció túlterheli a felületet.

Szükséges szerver a Rich Notification küldéséhez?

Igen, a szervernek push-t kell küldenie az APNS (Apple Push Notification service) segítségével egy JSON payload-dal, amely tartalmazza a médiafájl URL-jét egy egyedi mezőben és a mutable-content: 1 jelzőt. A szerver megadja a category-t is a Content Extension és a műveletek aktiválásához.

Összefoglalás

  • Rich Notification — iOS push értesítés média mellékletekkel, interaktív gombokkal és egyedi UI-val, amely növeli a felhasználói elköteleződést.
  • Támogatott média — JPEG/PNG/GIF képek, MP4/MOV videók (akár 30 mp), MP3/AAC/WAV hang 10 MB fájlonkénti korláttal.
  • Service Extension letölti a médiát a payload-beli URL-ről és hozzáadja az UNNotificationAttachment-et az értesítés tartalmához.
  • Interaktív műveletek — akár 4 gomb kategóriánként, beleértve a szöveges bevittelt az UNTextInputNotificationAction segítségével.
  • Content Extension lecseréli a szabványos felületet egyedi UIKit/SwiftUI nézetre tetszőleges elemekkel.
  • Content Extension implementálja az UNNotificationContentExtension protokollt a didReceive metódussal a kattintások kezelésére és a valós idejű UI frissítésre.
  • Rich Notification konfigurációt igényel minden szinten: szerver (APNS), Service Extension (média letöltés) és AppDelegate (kategóriák regisztrálása).

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is