Notification Category: mi ez, milyen kategóriák léteznek és hogyan működnek iOS-ben

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

Notification Category (értesítési kategória) egy iOS-mechanizmus a push értesítések típus szerinti csoportosítására és testreszabható műveletek hozzárendelésére. A kategória meghatározza, hogy mely gombok jelennek meg a 3D Touch vagy hosszú lenyomás során az értesítésen, valamint hogy a rendszer hogyan dolgozza fel az ilyen típusú bejövő értesítéseket. A Apple Developer Documentation szerint a UNNotificationCategory regisztrálásra kerül a UNUserNotificationCenter-ben, és az APNS-adatcsomag category mezőjén keresztül kapcsolódik az értesítéshez.

Főbb pontok

  • Notification Category — iOS-mechanizmus a push értesítések osztályozására és műveletek hozzáadására
  • UNNotificationCategory — osztály, amely regisztrálja a kategóriát UNNotificationAction készlettel
  • Műveletek — gombok az értesítés alatt: UNTextInputAction szövegbevitelhez, UNNotificationAction érintéshez
  • Kapcsolat — a kategória az APNS-adatcsomag aps szótárának category kulcsán keresztül van megadva
  • Különbség az Androidtól — az iOS Category a műveleteket kezeli, az Android Channel a fontosságot és hangot

Mi az a Notification Category iOS-ben?

A Notification Category egy iOS-funkció (a 8.0 verziótól), amely lehetővé teszi a fejlesztő számára a push értesítések osztályozását és interaktív műveletek hozzáadását. Amikor a felhasználó értesítést kap, és erősen megnyomja (3D Touch) vagy hosszan lenyomja, megjelennek a kategória által meghatározott gombok.

A kategória a UNNotificationCategory objektumon keresztül kerül regisztrálásra, amely tartalmaz egy azonosítót, egy művelettömböt és opcionális megjelenítési paramétereket. A rendszer az APNS-adatcsomagból származó kategóriaazonosító segítségével keresi meg a regisztrált kategóriát és jeleníti meg a megfelelő műveleteket.

Az Android Notification Channel-től eltérően az iOS Category nem kezeli a fontosságot, hangot vagy rezgést. Egyetlen feladata az értesítés interaktív lehetőségeinek biztosítása: válasz, megerősítés, elutasítás vagy szövegbeviteli gombok.

A kategóriák kötelezősége

A kategóriák nem kötelezőek a push értesítések megjelenítéséhez iOS-ben. Az értesítés mindenképpen megjelenik — gombokkal, ha a kategória regisztrálva van, vagy anélkül. A kategóriák csak az értesítések interaktivitásának növeléséhez szükségesek.

Hogyan működnek az értesítési kategóriák?

A kategóriák mechanizmusa négy szakaszból áll: a kategória regisztrálása a kliens oldalon, az APNS-adatcsomag elküldése a kategóriával, a kategória felismerése a rendszer által, és a felhasználói művelet feldolgozása.

  • Regisztrálás — az alkalmazás létrehozza a UNNotificationCategory-t művelettömbbel és regisztrálja a UNUserNotificationCenter-ben
  • Elküldés — a szerver az APNS-adatcsomagba belefoglalja a category kulcsot a kategória azonosítójával megegyező értékkel
  • Megjelenítés — az iOS megjeleníti az értesítést, és force touch esetén mutatja a kategóriához tartozó gombokat
  • Feldolgozás — a felhasználó megnyom egy gombot, elindul a UNUserNotificationCenterDelegate.didReceive response

A kategóriában lévő műveletek két típusúak lehetnek: foreground (megnyitják az alkalmazást) és background (háttérben futnak). A háttérműveletekhez az alkalmazás korlátozott időt (körülbelül 30 másodpercet) kap a feldolgozásra a UNNotificationActionHandler-ben.

Opciók a kategória regisztrálásakor

A UNNotificationCategory több opciót támogat az options paraméteren keresztül: customDismissAction — esemény fogadása az értesítés elhúzásakor, allowInCarPlay — műveletek megjelenítése CarPlay-ben, hiddenPreviewsBodyPlaceholder — egyéni szöveg rejtett előnézetekhez. Az opciók helyes konfigurálása javítja a felhasználói élményt a különböző Apple-eszközökön.

UNNotificationAction: művelettípusok

Az iOS két típusú műveletet kínál az értesítési kategóriákhoz. Minden típusnak megvan a maga célja és interakciós módja a felhasználóval.

TípusOsztályLeírásPélda
Egyszerű műveletUNNotificationActionGomb címmel és opciókkal (destructive, foreground, authenticationRequired)„Törlés”, „Megtekintés”
SzövegbevitelUNTextInputActionGomb, amely szövegbeviteli mezőt nyit tippel„Válasz”, „Hozzászólás”

UNTextInputAction — az iOS egyedi képessége. A „Válasz” gomb megnyomásakor a rendszer egy szövegmezőt jelenít meg, amelybe a felhasználó beírja a választ. A beírt szöveg a művelet azonosítójával együtt átadásra kerül a delegáltnak. Ez lehetővé teszi a gyors válaszokat az alkalmazás megnyitása nélkül.

Műveleti opciók: options.authenticationRequired — az eszköz feloldását igényli, options.destructive — piros színnel kiemeli a gombot (veszélyes műveletekhez), options.foreground — megnyitja az alkalmazást megnyomás után.

Kategória beállítása iOS kódban

A kategóriák az alkalmazás indításakor kerülnek regisztrálásra, általában a didFinishLaunchingWithOptions metódusban. A regisztráció a UNUserNotificationCenter-en keresztül történik, az értesítési engedély kérése után. A kategóriák minden indításkor frissíthetők — a régi verziók újakra cserélődnek.

swift
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func registerNotificationCategories() {
        let replyAction = UNTextInputNotificationAction(
            identifier: "reply",
            title: "Válasz",
            options: [.foreground],
            textInputButtonTitle: "Küldés",
            textInputPlaceholder: "Írja be az üzenetet..."
        )

        let deleteAction = UNNotificationAction(
            identifier: "delete",
            title: "Törlés",
            options: [.destructive]
        )

        let messageCategory = UNNotificationCategory(
            identifier: "message",
            actions: [replyAction, deleteAction],
            intentIdentifiers: [],
            options: [.customDismissAction]
        )

        UNUserNotificationCenter.current()
            .setNotificationCategories([messageCategory])
    }

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        UNUserNotificationCenter.current().delegate = self
        registerNotificationCategories()
        return true
    }
}

A kategória regisztrálása után minden olyan értesítés, amelynek category = „message" az APNS-adatcsomagban, megjeleníti a „Válasz” és „Törlés” gombokat. A lenyomások feldolgozása a userNotificationCenter:didReceive response-ban történik, ahol az actionIdentifier meghatározza, hogy melyik gombot nyomták meg.

Lenyomás feldolgozása a delegáltban

Amikor a felhasználó megnyom egy kategóriagombot, az iOS meghívja a UNUserNotificationCenterDelegate delegáltat egy UNNotificationResponse objektummal. A response.actionIdentifier tartalmazza a megnyomott gomb azonosítóját, a response.notification.request.content.userInfo pedig az APNS-adatcsomag egyedi adatait. A UNTextInputAction esetében továbbá elérhető a response.userText a felhasználó által beírt szöveggel.

Különbségek az Android csatornáktól

Az Android Notification Channels-t ismerő fejlesztők gyakran összekeverik azokat az iOS Notification Categories-ekkel. A hasonló név ellenére ezek a mechanizmusok különböző feladatokat oldanak meg és eltérően működnek.

  • Cél — Android Channels az értesítések fontosságát és láthatóságát kezeli; iOS Categories az interaktív műveleteket
  • Kötelezőség — Android Channel kötelező az értesítés megjelenítéséhez; iOS Category opcionális
  • Felhasználói vezérlés — Android felhasználó a csatornákat a rendszerbeállításokban konfigurálja; iOS kategóriák nem láthatók közvetlenül a felhasználó számára
  • Csoportosítás — Android Channels csoportokba vonhatók (ChannelGroup); iOS Categories nem csoportosíthatók

Mindkét platformon kombinálható a két mechanizmus: Androidban az értesítés tartozhat egy csatornához NotificationCompat műveletekkel, iOS-ben pedig a kategória kiegészíti azokat a csatornákat, amelyeket iOS-ben thread-id-nak hívnak, és az értesítések csoportosítására szolgálnak az értesítési központban.

APNS-adatcsomag kategóriával

Ahhoz, hogy az értesítés a kategória gombjaival jelenjen meg, a szervernek bele kell foglalnia a category kulcsot az APNS-adatcsomagba. E kulcs nélkül a rendszer nem fogja tudni, melyik kategóriát alkalmazza az értesítésre.

json
{
    "aps": {
        "alert": {
            "title": "Új üzenet",
            "body": "Anna: Szia! Hogy vagy?"
        },
        "category": "message",
        "thread-id": "chat_123",
        "badge": 5,
        "sound": "default"
    }
}

A category kulcsnak pontosan meg kell egyeznie a kliens oldalon a setNotificationCategories segítségével regisztrált azonosítóval. A kis- és nagybetűk számítanak — a „message" és „Message" különböző kategóriáknak minősülnek. Ha a kategória nem található, az értesítés gombok nélkül jelenik meg, hibanaplózás nélkül.

Ismeretlen kategória feldolgozása

Ha a szerver olyan category-val küldött értesítést, amely nincs regisztrálva a kliens oldalon, az iOS figyelmen kívül hagyja a kategóriát, és az értesítést gombok nélkül jeleníti meg. A hiba nem kerül naplózásra, és az alkalmazás nem tud az eltérésről. Javasolt a kategóriák listájának szinkronizálása a szerver és a kliens között egy konfigurációs fájlon keresztül, és azok ellenőrzése minden alkalmazásfrissítéskor.

Kategóriák tervezési mintái

Az iOS értesítési kategóriák tervezésekor tartsa be az egy kategória — egy forgatókönyv elvet. Minden kategóriának egy adott interakciós típusnak kell megfelelnie: válasz üzenetre, művelet megerősítése, kérelem elutasítása. Ne keverjen különböző forgatókönyveket egy kategóriában — ez összezavarja a felhasználót és megnehezíti a feldolgozást a delegáltban.

Használja a UNTextInputAction-t olyan forgatókönyvekhez, ahol a felhasználónak szöveget kell bevinnie az alkalmazás megnyitása nélkül: válaszok üzenetküldőkben, hozzászólások, gyors jegyzetek. A szöveges műveletek növelik az elköteleződést — a felhasználó 2 érintéssel hajt végre egy értelmes műveletet a nyitott alkalmazásban szükséges 5+ helyett.

Veszélyes műveletekhez (törlés, blokkolás) használja a destructive opciót. Az iOS piros színnel emeli ki ezeket a gombokat, figyelmeztetve a felhasználót a művelet visszafordíthatatlanságára. Az eszköz feloldását igénylő műveletekhez (személyes adatok megtekintése) állítsa be a authenticationRequired-t — a rendszer Face ID-t vagy jelszót kér a végrehajtás előtt.

Tesztelje a kategóriákat különböző eszközökön: iPhone-on 3D Touch-csal, iPhone-on 3D Touch nélkül (hosszú lenyomás), iPad-en és Mac-en. A kategóriák viselkedése kissé eltérhet a különböző Apple platformokon. Különös figyelem — CarPlay: a kategóriagombok megjelennek az autó képernyőjén, de a szövegbevitel nem elérhető, ezért a UNTextInputAction automatikusan elrejtésre kerül a CarPlay-ben. A watchOS-ben a kategóriák nem támogatottak — minden értesítés műveleti gombok nélkül jelenik meg.

Gyakran Ismételt Kérdések

Hány kategória regisztrálható iOS-ben?

Nincs korlátozás — az iOS nem szab határt a UNNotificationCategory számának. A gyakorlatban azonban nem ajánlott 10–15 kategóriánál többet használni, hogy ne bonyolítsa a feldolgozást a delegáltban. Minden kategória legfeljebb 4 műveletet (gombot) tartalmazhat. Több mint 4 műveletet a rendszer figyelmen kívül hagy.

Hogyan dolgozzuk fel a kategóriagomb megnyomását?

Valósítsa meg a UNUserNotificationCenterDelegate delegáltat és a didReceive response metódust. Ellenőrizze a response.actionIdentifier-t: UNNotificationDismissActionIdentifier — törlés elhúzása, UNNotificationDefaultActionIdentifier — érintés a testen, vagy az egyéni gombazonosító. Szöveges gombok esetén a szöveg a response.userText-en keresztül érhető el.

Miben különbözik a category a thread-id-től?

Category — meghatározza az interaktív műveleteket (gombokat) az értesítéshez. Thread-id — az értesítéseket csoportosítja az Értesítési Központban témák szerint. Mindkét kulcs az APNS-adatcsomagban van megadva. A category és a thread-id nem kapcsolódnak egymáshoz: egy értesítés rendelkezhet kategóriával thread-id nélkül és fordítva.

Működnek a kategóriák macOS-en?

Igen, a UNNotificationCategory támogatott macOS 10.14+ (Mojave) rendszeren a UserNotifications keretrendszert használó alkalmazásokban. A kategóriák viselkedése macOS-en hasonló az iOS-hez: az értesítés megnyomásakor gombok jelennek meg, a feldolgozás a UNUserNotificationCenterDelegate-en keresztül történik.

Frissíteni kell a kategóriákat minden indításkor?

Ajánlott a kategóriák regisztrálása minden alkalmazásindításkor a setNotificationCategories segítségével. A rendszer minden híváskor lecseréli a régi kategóriakészletet az újra. Ha nem frissíti, a kategóriák megmaradnak az indítások között, de a kód változásakor a régi kategóriák nem feltétlenül egyeznek meg az újakkal.

Összefoglalás

  • Notification Category — iOS-mechanizmus interaktív műveletek hozzáadásához a push értesítésekhez
  • UNNotificationCategory — osztály, amely egyesíti az azonosítót, a UNNotificationAction tömböt és az opciókat
  • UNTextInputAction — művelet szövegbeviteli mezővel gyors válaszokhoz az alkalmazás megnyitása nélkül
  • APNS-adatcsomag — az aps szótár category kulcsa összeköti az értesítést a regisztrált kategóriával
  • Akár 4 művelet — maximális gombszám kategóriánként, a többit a rendszer figyelmen kívül hagyja
  • Műveleti opciók — foreground (alkalmazás megnyitása), destructive (piros gomb), authenticationRequired
  • Különbség az Androidtól — iOS Category a műveletekért felel, Android Channel a fontosságért és hangért

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