Notification Category: wat is het, welke categorieën zijn er en hoe werken ze in iOS

Auteur: IT Sectr Gepubliceerd: 2026-03-20 Leestijd: 8 min

Notification Category (meldingscategorie) is een iOS-mechanisme voor het groeperen van pushmeldingen per type en het koppelen van aanpasbare acties. De categorie bepaalt welke knoppen worden weergegeven bij 3D Touch of lang indrukken van een melding, en hoe het systeem inkomende meldingen van dit type verwerkt. Volgens Apple Developer Documentation wordt UNNotificationCategory geregistreerd in UNUserNotificationCenter en gekoppeld aan de melding via het veld category in de APNS-payload.

Belangrijkste punten

  • Notification Category — iOS-mechanisme voor het classificeren van pushmeldingen en toevoegen van acties
  • UNNotificationCategory — klasse die de categorie registreert met een set UNNotificationAction
  • Acties — knoppen onder de melding: UNTextInputAction voor tekstinvoer, UNNotificationAction voor tikken
  • Koppeling — de categorie wordt in de APNS-payload aangegeven via de sleutel category in het aps-woordenboek
  • Verschil met Android — iOS Category beheert acties, Android Channel beheert belang en geluid

Wat is Notification Category in iOS?

Notification Category is een iOS-functie (sinds versie 8.0) waarmee de ontwikkelaar pushmeldingen kan classificeren en interactieve acties kan toevoegen. Wanneer een gebruiker een melding ontvangt en er krachtig op drukt (3D Touch) of lang indrukt, verschijnen de knoppen die door de categorie zijn gedefinieerd.

De categorie wordt geregistreerd via het object UNNotificationCategory, dat een identificatie, een reeks acties en optionele weergaveparameters bevat. Het systeem gebruikt de categorie-id uit de APNS-payload om de geregistreerde categorie te vinden en de bijbehorende acties weer te geven.

In tegenstelling tot Android Notification Channel beheert iOS Category geen belang, geluid of trilling. De enige taak is het bieden van interactieve mogelijkheden voor de melding: knoppen voor antwoord, bevestiging, annulering of tekstinvoer.

Verplichting van categorieën

Categorieën zijn niet verplicht voor het weergeven van pushmeldingen op iOS. De melding wordt in elk geval weergegeven — met knoppen als de categorie is geregistreerd, of zonder. Categorieën zijn alleen nodig om interactiviteit aan meldingen toe te voegen.

Hoe werken meldingscategorieën?

Het mechanisme van categorieën bestaat uit vier fasen: registratie van de categorie op de client, verzending van de APNS-payload met de categorie, herkenning van de categorie door het systeem en verwerking van de gebruikersactie.

  • Registratie — de app maakt UNNotificationCategory met een reeks acties en registreert deze in UNUserNotificationCenter
  • Verzending — de server neemt in de APNS-payload de sleutel category op met een waarde die overeenkomt met de categorie-id
  • Weergave — iOS toont de melding en bij force touch worden de aan de categorie gekoppelde knoppen getoond
  • Verwerking — de gebruiker drukt op een knop, UNUserNotificationCenterDelegate.didReceive response wordt geactiveerd

Acties in een categorie kunnen twee typen zijn: foreground (openen de app) en background (worden op de achtergrond uitgevoerd). Voor achtergrondacties krijgt de app beperkte tijd (ongeveer 30 seconden) voor verwerking in UNNotificationActionHandler.

Opties bij registratie van categorie

UNNotificationCategory ondersteunt verschillende opties via de parameter options: customDismissAction — een gebeurtenis ontvangen bij het wegvegen van de melding, allowInCarPlay — acties weergeven in CarPlay, hiddenPreviewsBodyPlaceholder — aangepaste tekst voor verborgen voorbeelden. Correcte configuratie van opties verbetert de gebruikerservaring op verschillende Apple-apparaten.

UNNotificationAction: soorten acties

iOS biedt twee soorten acties voor meldingscategorieën. Elk type heeft zijn eigen doel en manier van interactie met de gebruiker.

TypeKlasseBeschrijvingVoorbeeld
Eenvoudige actieUNNotificationActionKnop met titel en opties (destructive, foreground, authenticationRequired)„Verwijder”, „Bekijk”
TekstinvoerUNTextInputActionKnop die een tekstinvoerveld met hint opent„Antwoord”, „Reageer”

UNTextInputAction — een unieke iOS-mogelijkheid. Bij het indrukken van de knop „Antwoord” toont het systeem een tekstveld waarin de gebruiker zijn antwoord typt. De ingevoerde tekst wordt samen met de actie-id aan de delegate doorgegeven. Dit maakt snelle antwoorden mogelijk zonder de app te openen.

Actie-opties: options.authenticationRequired — vereist ontgrendeling van het apparaat, options.destructive — markeert de knop rood (voor gevaarlijke acties), options.foreground — opent de app na indrukken.

Categorie configureren in iOS-code

Categorieën worden geregistreerd bij het opstarten van de app, meestal in de methode didFinishLaunchingWithOptions. Registratie gebeurt via UNUserNotificationCenter, na het vragen van toestemming voor meldingen. Categorieën kunnen bij elke start worden bijgewerkt — oude versies worden vervangen door nieuwe.

swift
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func registerNotificationCategories() {
        let replyAction = UNTextInputNotificationAction(
            identifier: "reply",
            title: "Antwoord",
            options: [.foreground],
            textInputButtonTitle: "Verzenden",
            textInputPlaceholder: "Typ uw bericht..."
        )

        let deleteAction = UNNotificationAction(
            identifier: "delete",
            title: "Verwijder",
            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
    }
}

Na registratie van de categorie zal elke melding met category = „message” in de APNS-payload de knoppen „Antwoord” en „Verwijder” tonen. Verwerking van tikken gebeurt in userNotificationCenter:didReceive response, waar actionIdentifier bepaalt welke knop is ingedrukt.

Verwerking van indrukken in de delegate

Wanneer de gebruiker op een categorieknop drukt, roept iOS de delegate UNUserNotificationCenterDelegate aan met het UNNotificationResponse-object. response.actionIdentifier bevat de id van de ingedrukte knop, en response.notification.request.content.userInfo bevat aangepaste gegevens uit de APNS-payload. Voor UNTextInputAction is daarnaast response.userText beschikbaar met de door de gebruiker ingevoerde tekst.

Verschillen met Android-kanalen

Ontwikkelaars die bekend zijn met Android Notification Channels verwarren ze vaak met iOS Notification Categories. Ondanks de vergelijkbare naam lossen deze mechanismen verschillende taken op en werken ze op verschillende manieren.

  • Doel — Android Channels beheren het belang en de zichtbaarheid van meldingen; iOS Categories — interactieve acties
  • Verplichting — Android Channel is verplicht voor het tonen van meldingen; iOS Category is optioneel
  • Gebruikersbeheer — Android-gebruiker configureert kanalen in systeeminstellingen; iOS-categorieën zijn niet direct zichtbaar voor de gebruiker
  • Groepering — Android Channels kunnen worden samengevoegd in groepen (ChannelGroup); iOS Categories worden niet gegroepeerd

Op beide platforms kunnen beide mechanismen worden gecombineerd: in Android kan een melding tot een kanaal behoren met acties van NotificationCompat, en in iOS vult de categorie de kanalen aan die in iOS thread-id worden genoemd en dienen voor het groeperen van meldingen in het meldingencentrum.

APNS-payload met categorie

Om de melding met categorieknoppen weer te geven, moet de server de sleutel category in de APNS-payload opnemen. Zonder deze sleutel weet het systeem niet welke categorie op de melding moet worden toegepast.

json
{
    "aps": {
        "alert": {
            "title": "Nieuw bericht",
            "body": "Anna: Hallo! Hoe gaat het?"
        },
        "category": "message",
        "thread-id": "chat_123",
        "badge": 5,
        "sound": "default"
    }
}

De sleutel category moet exact overeenkomen met de id die via setNotificationCategories op de client is geregistreerd. Hoofdlettergevoeligheid is belangrijk — „message” en „Message” worden als verschillende categorieën beschouwd. Als de categorie niet wordt gevonden, wordt de melding zonder knoppen weergegeven, zonder fouten in de logboeken.

Verwerking van onbekende categorie

Als de server een melding heeft verzonden met een category die niet op de client is geregistreerd, negeert iOS de categorie en toont de melding zonder knoppen. De fout wordt niet gelogd en de app krijgt geen kennis van de mismatch. Het wordt aanbevolen om de lijst met categorieën tussen server en client te synchroniseren via een configuratiebestand en deze bij elke app-update te controleren.

Ontwerppatronen voor categorieën

Hanteer bij het ontwerpen van iOS-meldingscategorieën het principe één categorie — één scenario. Elke categorie moet overeenkomen met een specifiek type interactie: antwoord op bericht, bevestiging van actie, afwijzing van verzoek. Meng geen verschillende scenario's in één categorie — dit verwart de gebruiker en bemoeilijkt de verwerking in de delegate.

Gebruik UNTextInputAction voor scenario's waarin de gebruiker tekst moet invoeren zonder de app te openen: antwoorden in messengers, reacties, snelle notities. Tekstacties verhogen de betrokkenheid — de gebruiker voert een betekenisvolle actie uit in 2 tikken in plaats van 5+ in de geopende app.

Gebruik voor gevaarlijke acties (verwijderen, blokkeren) de optie destructive. iOS markeert deze knoppen rood, waarmee de gebruiker wordt gewaarschuwd voor de onomkeerbaarheid van de actie. Voor acties die ontgrendeling van het apparaat vereisen (bekijken van persoonlijke gegevens), stelt u authenticationRequired in — het systeem vraagt om Face ID of wachtwoord voordat de actie wordt uitgevoerd.

Test categorieën op verschillende apparaten: op iPhone met 3D Touch, op iPhone zonder 3D Touch (lang indrukken), op iPad en op Mac. Het gedrag van categorieën kan enigszins verschillen op verschillende Apple-platforms. Speciale aandacht — CarPlay: categorieknoppen worden op het autoscherm getoond, maar tekstinvoer is niet beschikbaar, dus UNTextInputAction wordt automatisch verborgen in CarPlay. Op watchOS worden categorieën niet ondersteund — alle meldingen worden zonder actieknoppen weergegeven.

Veelgestelde vragen

Hoeveel categorieën kunnen in iOS worden geregistreerd?

Er zijn geen beperkingen — iOS stelt geen limiet aan het aantal UNNotificationCategory. In de praktijk wordt echter aanbevolen om niet meer dan 10–15 categorieën te gebruiken om de verwerking in de delegate niet te compliceren. Elke categorie kan maximaal 4 acties (knoppen) bevatten. Meer dan 4 acties worden door het systeem genegeerd.

Hoe verwerk ik het indrukken van een categorieknop?

Implementeer de delegate UNUserNotificationCenterDelegate en de methode didReceive response. Controleer response.actionIdentifier: UNNotificationDismissActionIdentifier — veeg om te verwijderen, UNNotificationDefaultActionIdentifier — tik op de body, of uw eigen aangepaste knop-id. Voor tekstknoppen is de tekst beschikbaar via response.userText.

Wat is het verschil tussen category en thread-id?

Category — bepaalt de interactieve acties (knoppen) voor de melding. Thread-id — groepeert meldingen in het Meldingencentrum op onderwerp. Beide sleutels worden in de APNS-payload opgegeven. Category en thread-id zijn niet gerelateerd: een melding kan een categorie hebben zonder thread-id en vice versa.

Werken categorieën op macOS?

Ja, UNNotificationCategory wordt ondersteund op macOS 10.14+ (Mojave) in apps die het UserNotifications-framework gebruiken. Het gedrag van categorieën op macOS is vergelijkbaar met iOS: bij het indrukken van de melding worden knoppen getoond, verwerking vindt plaats via UNUserNotificationCenterDelegate.

Moeten categorieën bij elke start worden bijgewerkt?

Het wordt aanbevolen om categorieën bij elke start van de app te registreren via setNotificationCategories. Het systeem vervangt de oude set categorieën bij elke aanroep door een nieuwe. Als u niet bijwerkt, blijven categorieën tussen starts behouden, maar bij codewijzigingen kunnen oude categorieën niet overeenkomen met nieuwe.

Samenvatting

  • Notification Category — iOS-mechanisme voor het toevoegen van interactieve acties aan pushmeldingen
  • UNNotificationCategory — klasse die id, UNNotificationAction-array en opties combineert
  • UNTextInputAction — actie met tekstinvoerveld voor snelle antwoorden zonder de app te openen
  • APNS-payload — de sleutel category in het aps-woordenboek koppelt de melding aan de geregistreerde categorie
  • Tot 4 acties — maximaal aantal knoppen per categorie, de rest wordt door het systeem genegeerd
  • Actie-opties — foreground (app openen), destructive (rode knop), authenticationRequired
  • Verschil met Android — iOS Category is verantwoordelijk voor acties, Android Channel voor belang en geluid

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook