Notification Category: vad är det, vilka kategorier finns och hur fungerar de i iOS

Författare: IT Sectr Publicerad: 2026-03-20 Lästid: 8 min

Notification Category (notiseringskategori) är en iOS-mekanism för att gruppera push-notiser efter typ och koppla anpassningsbara åtgärder till dem. Kategorin bestämmer vilka knappar som visas vid 3D Touch eller lång tryckning på notisen, samt hur systemet bearbetar inkommande notiser av denna typ. Enligt Apple Developer Documentation registreras UNNotificationCategory i UNUserNotificationCenter och kopplas till notisen via fältet category i APNS-nyttolasten.

Huvudpunkter

  • Notification Category — iOS-mekanism för klassificering av push-notiser och tillägg av åtgärder
  • UNNotificationCategory — klass som registrerar kategorin med en uppsättning UNNotificationAction
  • Åtgärder — knappar under notisen: UNTextInputAction för textinmatning, UNNotificationAction för tryck
  • Koppling — kategorin anges i APNS-nyttolasten via nyckeln category i aps-ordboken
  • Skillnad från Android — iOS Category hanterar åtgärder, Android Channel hanterar betydelse och ljud

Vad är Notification Category i iOS?

Notification Category är en iOS-funktion (sedan version 8.0) som gör det möjligt för utvecklaren att klassificera push-notiser och lägga till interaktiva åtgärder. När en användare får en notis och trycker hårt (3D Touch) eller länge på den, visas knapparna som definieras av kategorin.

Kategorin registreras via objektet UNNotificationCategory, som innehåller en identifierare, en array av åtgärder och valfria visningsparametrar. Systemet använder kategoriidentifieraren från APNS-nyttolasten för att hitta den registrerade kategorin och visa motsvarande åtgärder.

Till skillnad från Android Notification Channel hanterar iOS Category inte betydelse, ljud eller vibration. Dess enda uppgift är att tillhandahålla interaktiva möjligheter för notisen: knappar för svar, bekräftelse, avbrytande eller textinmatning.

Obligatoriskhet av kategorier

Kategorier är inte obligatoriska för visning av push-notiser på iOS. Notisen visas i vilket fall som helst — med knappar om kategorin är registrerad, eller utan dem. Kategorier behövs bara för att lägga till interaktivitet till notiser.

Hur fungerar notiseringskategorier?

Mekanismen för kategorier består av fyra steg: registrering av kategorin på klienten, sändning av APNS-nyttolasten med kategorin, igenkänning av kategorin av systemet och bearbetning av användarens åtgärd.

  • Registrering — appen skapar UNNotificationCategory med en array av åtgärder och registrerar den i UNUserNotificationCenter
  • Sändning — servern inkluderar i APNS-nyttolasten nyckeln category med ett värde som matchar kategoriens identifierare
  • Visning — iOS visar notisen och vid force touch visas knapparna som är kopplade till kategorin
  • Bearbetning — användaren trycker på en knapp, UNUserNotificationCenterDelegate.didReceive response utlöses

Åtgärder i en kategori kan vara av två typer: foreground (öppnar appen) och background (körs i bakgrunden). För bakgrundsåtgärder får appen begränsad tid (cirka 30 sekunder) för bearbetning i UNNotificationActionHandler.

Alternativ vid registrering av kategori

UNNotificationCategory stöder flera alternativ via parametern options: customDismissAction — ta emot händelse vid svepning av notisen, allowInCarPlay — visa åtgärder i CarPlay, hiddenPreviewsBodyPlaceholder — anpassad text för dolda förhandsvisningar. Korrekt konfiguration av alternativ förbättrar användarupplevelsen på olika Apple-enheter.

UNNotificationAction: åtgärdstyper

iOS erbjuder två typer av åtgärder för notiseringskategorier. Varje typ har sitt eget syfte och sätt att interagera med användaren.

TypKlassBeskrivningExempel
Enkel åtgärdUNNotificationActionKnapp med titel och alternativ (destructive, foreground, authenticationRequired)”Ta bort”, ”Visa”
TextinmatningUNTextInputActionKnapp som öppnar ett textinmatningsfält med ledtråd”Svara”, ”Kommentera”

UNTextInputAction — en unik iOS-förmåga. När knappen ”Svara” trycks in visar systemet ett textfält där användaren skriver sitt svar. Den inmatade texten skickas till delegaten tillsammans med åtgärdens identifierare. Detta möjliggör snabba svar utan att öppna appen.

Åtgärdsalternativ: options.authenticationRequired — kräver upplåsning av enheten, options.destructive — markerar knappen röd (för farliga åtgärder), options.foreground — öppnar appen efter tryckning.

Konfigurera kategori i iOS-kod

Kategorier registreras vid appstart, vanligtvis i metoden didFinishLaunchingWithOptions. Registrering sker via UNUserNotificationCenter efter att ha begärt tillstånd för notiser. Kategorier kan uppdateras vid varje start — gamla versioner ersätts med nya.

swift
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func registerNotificationCategories() {
        let replyAction = UNTextInputNotificationAction(
            identifier: "reply",
            title: "Svara",
            options: [.foreground],
            textInputButtonTitle: "Skicka",
            textInputPlaceholder: "Skriv meddelande..."
        )

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

Efter registrering av kategorin kommer varje notis med category = ”message” i APNS-nyttolasten att visa knapparna ”Svara” och ”Ta bort”. Bearbetning av tryckningar sker i userNotificationCenter:didReceive response, där actionIdentifier avgör vilken knapp som trycktes.

Bearbetning av tryckning i delegaten

När användaren trycker på en kategori-knapp anropar iOS delegaten UNUserNotificationCenterDelegate med ett UNNotificationResponse-objekt. response.actionIdentifier innehåller identifieraren för den tryckta knappen och response.notification.request.content.userInfo innehåller anpassad data från APNS-nyttolasten. För UNTextInputAction är även response.userText tillgänglig med texten som användaren matade in.

Skillnader från Android-kanaler

Utvecklare som känner till Android Notification Channels blandar ofta ihop dem med iOS Notification Categories. Trots det liknande namnet löser dessa mekanismer olika uppgifter och fungerar på olika sätt.

  • Syfte — Android Channels hanterar betydelse och synlighet av notiser; iOS Categories — interaktiva åtgärder
  • Obligatoriskhet — Android Channel är obligatorisk för visning av notis; iOS Category är valfri
  • Användarkontroll — Android-användare konfigurerar kanaler i systeminställningar; iOS-kategorier är inte direkt synliga för användaren
  • Gruppering — Android Channels kan slås samman i grupper (ChannelGroup); iOS Categories grupperas inte

På båda plattformarna kan båda mekanismerna kombineras: i Android kan en notis tillhöra en kanal med åtgärder från NotificationCompat, och i iOS kompletterar kategorin de kanaler som i iOS kallas thread-id och används för att gruppera notiser i notiscentret.

APNS-nyttolast med kategori

För att notisen ska visas med kategorins knappar måste servern inkludera nyckeln category i APNS-nyttolasten. Utan denna nyckel vet systemet inte vilken kategori som ska tillämpas på notisen.

json
{
    "aps": {
        "alert": {
            "title": "Nytt meddelande",
            "body": "Anna: Hej! Hur mår du?"
        },
        "category": "message",
        "thread-id": "chat_123",
        "badge": 5,
        "sound": "default"
    }
}

Nyckeln category måste exakt matcha identifieraren som registrerats via setNotificationCategories på klienten. Versaler och gemener har betydelse — ”message” och ”Message” betraktas som olika kategorier. Om kategorin inte hittas visas notisen utan knappar, utan fel i loggarna.

Bearbetning av okänd kategori

Om servern skickade en notis med en category som inte är registrerad på klienten ignorerar iOS kategorin och visar notisen utan knappar. Felet loggas inte och appen får inte veta om avvikelsen. Det rekommenderas att synkronisera listan över kategorier mellan server och klient via en konfigurationsfil och kontrollera dem vid varje appuppdatering.

Designmönster för kategorier

Vid utformning av iOS-notiseringskategorier, följ principen en kategori — ett scenario. Varje kategori bör motsvara en specifik interaktionstyp: svar på meddelande, bekräftelse av åtgärd, avvisande av begäran. Blanda inte olika scenarier i en kategori — detta förvirrar användaren och komplicerar bearbetningen i delegaten.

Använd UNTextInputAction för scenarier där användaren måste mata in text utan att öppna appen: svar i meddelandeprogram, kommentarer, snabba anteckningar. Textåtgärder ökar engagemanget — användaren utför en meningsfull åtgärd med 2 tryckningar istället för 5+ i den öppna appen.

För farliga åtgärder (ta bort, blockera) använd alternativet destructive. iOS markerar dessa knappar röda och varnar användaren om åtgärdens oåterkallelighet. För åtgärder som kräver upplåsning av enheten (visning av personuppgifter), ställ in authenticationRequired — systemet begär Face ID eller lösenord före utförande.

Testa kategorier på olika enheter: på iPhone med 3D Touch, på iPhone utan 3D Touch (lång tryckning), på iPad och på Mac. Beteendet hos kategorier kan variera något på olika Apple-plattformar. Särskild uppmärksamhet — CarPlay: kategoriknappar visas på bilens skärm, men textinmatning är inte tillgänglig, så UNTextInputAction döljs automatiskt i CarPlay. På watchOS stöds inte kategorier — alla notiser visas utan åtgärdsknappar.

Vanliga frågor

Hur många kategorier kan registreras i iOS?

Det finns inga begränsningar — iOS sätter ingen gräns för antalet UNNotificationCategory. I praktiken rekommenderas dock inte mer än 10–15 kategorier för att inte komplicera bearbetningen i delegaten. Varje kategori kan innehålla upp till 4 åtgärder (knappar). Fler än 4 åtgärder ignoreras av systemet.

Hur bearbetar man tryckning på en kategoriknapp?

Implementera delegaten UNUserNotificationCenterDelegate och metoden didReceive response. Kontrollera response.actionIdentifier: UNNotificationDismissActionIdentifier — svep för att ta bort, UNNotificationDefaultActionIdentifier — tryck på kroppen, eller din egen anpassade knappidentifierare. För textknappar är texten tillgänglig via response.userText.

Vad är skillnaden mellan category och thread-id?

Category — bestämmer de interaktiva åtgärderna (knapparna) för notisen. Thread-id — grupperar notiser i Notiscentret efter ämne. Båda nycklarna anges i APNS-nyttolasten. Category och thread-id är inte relaterade: en notis kan ha en kategori utan thread-id och vice versa.

Fungerar kategorier på macOS?

Ja, UNNotificationCategory stöds på macOS 10.14+ (Mojave) i appar som använder UserNotifications-ramverket. Beteendet hos kategorier på macOS är liknande iOS: vid tryckning på notisen visas knappar, bearbetning sker via UNUserNotificationCenterDelegate.

Måste kategorier uppdateras vid varje start?

Det rekommenderas att registrera kategorier vid varje appstart via setNotificationCategories. Systemet ersätter den gamla uppsättningen kategorier med en ny vid varje anrop. Om du inte uppdaterar bevaras kategorierna mellan starterna, men vid kodändringar kan gamla kategorier inte matcha nya.

Sammanfattning

  • Notification Category — iOS-mekanism för att lägga till interaktiva åtgärder till push-notiser
  • UNNotificationCategory — klass som kombinerar identifierare, UNNotificationAction-array och alternativ
  • UNTextInputAction — åtgärd med textinmatningsfält för snabba svar utan att öppna appen
  • APNS-nyttolast — nyckeln category i aps-ordboken kopplar notisen till registrerad kategori
  • Upp till 4 åtgärder — maximalt antal knappar per kategori, resten ignoreras av systemet
  • Åtgärdsalternativ — foreground (öppna appen), destructive (röd knapp), authenticationRequired
  • Skillnad från Android — iOS Category ansvarar för åtgärder, Android Channel för betydelse och ljud

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också