Lokala notifikationer inom mobilutveckling: essens, vilka typer som finns och hur de fungerar

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

En lokal notifikation är ett meddelande som appen skickar till användaren utan att en fjärrserver deltar. All data bearbetas och visas direkt på mottagarens enhet. En sådan mekanism passar för påminnelser, timers och alarm när appen är i bakgrunden eller stängd. Enligt Apple Developer Documentation tillhandahåller UNUserNotificationCenter centraliserad hantering av lokala notifikationer på iOS.

Huvudpunkter

  • Lokal notifikation — ett meddelande som planeras och levereras av enheten utan servermedverkan
  • Plattformar — Android använder NotificationManager, iOS använder UNUserNotificationCenter
  • Schemaläggning — notifikationer kan försenas baserat på tid, geolokalisering eller kalender
  • Begränsningar — lokala notifikationer fungerar inte mellan enheter och kräver separat synkroniseringslogik
  • UX — korrekt konfigurerade notifikationer ökar engagemanget och återför användaren till appen

Vad är en lokal notifikation?

En lokal notifikation är ett triggat meddelande som genereras och visas av operativsystemet på samma enhet där appen är installerad. Till skillnad från push-notifikationer går lokala inte igenom en extern server — all schemaläggningslogik utförs på klientsidan.

Sådana notifikationer fungerar oavsett appens tillstånd: aktiv, minimerad eller helt stängd. Operativsystemet tar över leveransen vid den angivna tiden och utvecklaren specificerar endast innehållet och triggern.

Systemet garanterar leverans av den lokala notifikationen även utan nätverk. Detta är en viktig fördel jämfört med push-notifikationer som kräver en stabil internetanslutning och en fungerande server.

Huvudkomponenter i en begäran

Varje lokal notifikation består av tre delar: innehåll (titel, brödtext, ljud), trigger (tids- eller geo-villkor) och en begäran-identifierare. Identifieraren gör det möjligt att avbryta eller uppdatera notifikationen före leverans.

Utvecklaren kan ställa in upp till 64 lokala notifikationer för en app på iOS och ett obegränsat antal på Android. Skillnaden beror på operativsystemens arkitektoniska begränsningar.

Hur fungerar lokala notifikationer på iOS och Android?

Båda plattformarna tillhandahåller sina egna API:er för att arbeta med lokala notifikationer. På iOS är det centrala elementet UNUserNotificationCenter, på Android — NotificationManager. Trots olika gränssnitt är logiken densamma: appen skapar en begäran, registrerar den i systemet och operativsystemet levererar notifikationen vid den angivna tidpunkten.

iOS använder UNCalendarNotificationTrigger för kalenderhändelser, UNTimeIntervalNotificationTrigger för intervall och UNLocationNotificationTrigger för geolokalisering. Android erbjuder AlarmManager, WorkManager och exakt schemaläggning via setExact.

Från och med Android 12 — kräver SCHEDULE_EXACT_ALARM särskilt tillstånd från användaren. På iOS begärs tillstånd en gång via UNUserNotificationCenter.requestAuthorization och användaren väljer åtkomstnivå: banners, ljud, märken.

Typer av lokala notifikationer

Lokala notifikationer klassificeras efter triggertyp, inte efter innehåll. Varje typ bestämmer när och under vilka förhållanden notifikationen visas för användaren.

Jämförelse av triggrar per plattform

På iOS och Android är triggertyperna implementerade olika, även om den logiska klassificeringen är densamma. iOS använder UNCalendarNotificationTrigger för datum, UNTimeIntervalNotificationTrigger för intervall och UNLocationNotificationTrigger för geolokalisering. Android erbjuder AlarmManager med setExact och setRepeating, samt WorkManager för fördröjda uppgifter.

TriggertypBeskrivningExempel
TidsintervallNotifikation efter N sekunder från startNedräkningstimer
KalenderdatumNotifikation vid specifik tid och datumPåminnelse om möte
GeolokaliseringNotifikation vid in-/utträde ur en regionPåminnelse vid butiken
OvillkorligOmedelbar leverans vid API-anropNedladdningsnotifikation

På iOS finns även UNNotificationAttachment tillgängligt — bilaga av bild, ljud eller video i notifikationstexten. Android stöder anpassade mallar med knappar och stora bilder via NotificationCompat.Style.

Valet av trigger beror på scenariot: kalenderpåminnelser fungerar bäst via kalendertriggern och geo-påminnelser — via geolokalisering. Intervalltriggrar passar för regelbundna händelser med fast period.

Triggrars beteende i bakgrunden

iOS levereras lokala notifikationer av systemet även när appen är stängd — UNUserNotificationCenter hanterar kön självständigt. På Android beror leveransen på den valda mekanismen: AlarmManager aktiveras även när skärmen är avstängd, medan WorkManager tar hänsyn till energibesparing.

Användningsscenarier i mobilappar

Lokala notifikationer löser uppgifter där extern infrastruktur är överflödig eller inte tillgänglig. Huvudscenarier: påminnelser, timers, utbildningstips och fördröjda åtgärder.

  • Påminnelser — kalenderappen skapar en lokal notifikation på ett specifikt händelsedatum
  • Utbildningstips — en dag efter installation visar appen ett tips om skärmen
  • Timers — kökstimern aktiveras efter angiven tid även när appen är stängd
  • Förlopp för operationer — notifikation om slutförd nedladdning eller dataexport

Forskning från Localytics visar att appar som använder lokala påminnelser behåller 35% fler användare den första veckan efter installation. Detta gör lokala notifikationer till ett kraftfullt verktyg för onboarding.

Det är viktigt att inte missbruka frekvensen — systemet grupperar själv notifikationer från en app och användaren kan stänga av alla lokala notifikationer om de stör. Optimal frekvens är inte mer än 2–3 notifikationer per dag för icke-kritiska händelser.

Exempel på schemaläggning på Android

För att schemalägga en lokal notifikation på Android, använd NotificationManager tillsammans med AlarmManager. Från Android 8+ måste du först skapa en notifikationskanal, annars visas inte notifikationen.

kotlin
val channelId = "reminder_channel"
val notificationId = "task_reminder_42"

val channel = NotificationChannel(
    channelId,
    "Påminnelser",
    NotificationManager.IMPORTANCE_HIGH
).apply {
    description = "Kanal för uppgiftspåminnelser"
}

val manager = getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)

val intent = Intent(this, ReminderReceiver::class.java).apply {
    putExtra("notification_id", notificationId)
    putExtra("channel_id", channelId)
}

val pendingIntent = PendingIntent.getBroadcast(
    this, notificationId.hashCode(),
    intent, PendingIntent.FLAG_UPDATE_CURRENT
)

val alarmManager = getSystemService(AlarmManager::class.java)
alarmManager.setExact(
    AlarmManager.RTC_WAKEUP,
    triggerTimeMillis,
    pendingIntent
)

På Android 12+ kontrollera SCHEDULE_EXACT_ALARM-tillståndet innan du anropar setExact. Om tillståndet inte har beviljats — använd setWindow som garanterar leverans inom ett tidsfönster.

Bearbetning i BroadcastReceiver

När AlarmManager aktiveras skickar systemet en broadcast Intent som tas emot av BroadcastReceiver. Inuti den måste du skapa och visa notifikationen via NotificationManager. Se till att PendingIntent använder FLAG_UPDATE_CURRENT, annars kommer gamla notifikationer vid dataändringar fortsätta att använda den föråldrade Intenten.

Exempel på schemaläggning på iOS

På iOS skapas lokala notifikationer via UNUserNotificationCenter med UNMutableNotificationContent och en av triggrarna. Före schemaläggning måste du be om tillstånd från användaren.

swift
import UserNotifications

let center = UNUserNotificationCenter.current()

center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    guard granted else { return }
}

let content = UNMutableNotificationContent()
content.title = "Uppgiftspåminnelse"
content.body = "Glöm inte att slutföra rapporten före 18:00"
content.sound = .default
content.userInfo = ["task_id": "42"]

let trigger = UNTimeIntervalNotificationTrigger(
    timeInterval: 3600,
    repeats: false
)

let request = UNNotificationRequest(
    identifier: "task_reminder_42",
    content: content,
    trigger: trigger
)

center.add(request)

iOS stöder upp till 64 samtidiga begäranden om lokala notifikationer. Om gränsen överskrids — avvisar systemet nya begäranden tills aktiva har levererats eller avbrutits. Använd getPendingNotificationRequests för att kontrollera den aktuella kön.

Bearbetning av delegatsvar

När en användare interagerar med en lokal iOS-notifikation anropas metoden userNotificationCenter:didReceive response hos delegaten UNUserNotificationCenterDelegate. I denna metod finns begäran-identifieraren, actionIdentifier (vilken knapp som trycktes) och anpassad userInfo tillgängliga. Detta gör det möjligt att skilja enkel öppning av notifikationen från att trycka på en specifik åtgärdsknapp.

Bästa praxis för lokala notifikationer

För att lokala notifikationer ska vara användbara och inte irritera användaren, följ några viktiga regler. För det första: kontrollera frekvensen — inte mer än 2–3 notifikationer per dag för icke-kritiska händelser, annars stänger användaren av alla appens notifikationer.

För det andra: ge användaren valmöjlighet. Lägg till i gränssnittet möjligheten att stänga av vissa typer av lokala notifikationer. På Android är det bekvämt att använda en separat NotificationChannel med låg importance för detta, på iOS — en separat kategori i appens inställningar.

För det tredje: kontextuell relevans — notifikationen bör visas när användaren behöver den. Geo-triggrar är idealiska för påminnelser om ärenden nära hemmet, kalendertriggrar — för möten, intervalltriggrar — för regelbundna aktiviteter som att dricka vatten eller stretcha. Blanda inte typer i onödan.

För det fjärde: testa på riktiga enheter. iOS-simulatorn emulerar inte alla leveransscenarier för lokala notifikationer, särskilt i bakgrunden. På Android använder du adb shell dumpsys notification för att kontrollera kön av schemalagda notifikationer och deras parametrar. För det femte: ge alltid användaren möjlighet att stänga av notifikationer via appens gränssnitt — detta är ett obligatoriskt UX-krav och App Store Review Guidelines.

Vanliga frågor

Vad är skillnaden mellan en lokal notifikation och en push?

En lokal notifikation planeras och levereras av enheten utan servermedverkan. Push-notifikation kräver en extern tjänst (FCM, APNS) och internetanslutning. Lokala fungerar offline, push — endast med nätverksåtkomst.

Hur många lokala notifikationer kan schemaläggas?

iOS begränsar till 64 samtidigt schemalagda begäranden. Android har ingen strikt gräns, men över 500 notifikationer kan minska systemets prestanda och påverka leveranstiden.

Kan en lokal notifikation avbrytas efter schemaläggning?

Ja, på iOS använder du removePendingNotificationRequests med begäran-identifieraren. På Android anropar du NotificationManager.cancel eller avbryter PendingIntent via AlarmManager. En unik identifierare krävs för avbrytning.

Krävs användartillstånd för lokala notifikationer?

iOS krävs tillstånd obligatoriskt via requestAuthorization. På Android 13+ (Tiramisu) krävs även tillståndet POST_NOTIFICATIONS. Äldre versioner av Android kräver inte uttryckligt tillstånd för lokala notifikationer.

Hur lägger man till knappar i en lokal notifikation?

På iOS skapar du UNNotificationAction och lägger till i UNNotificationCategory. På Android använder du NotificationCompat.Builder.addAction med PendingIntent för BroadcastReceiver. Varje knapp utlöser en separat åtgärd i appen.

Sammanfattning

  • Lokala notifikationer — meddelanden som planeras och levereras av enheten utan serverinfrastruktur
  • UNUserNotificationCenter — det huvudsakliga API:et för lokala notifikationer på iOS
  • NotificationManager — det huvudsakliga API:et för lokala notifikationer på Android
  • Triggertyper — tidsintervall, kalenderdatum, geolokalisering och ovillkorlig leverans
  • Gränser — iOS begränsar till 64 schemalagda begäranden, Android har ingen strikt gräns
  • Tillstånd — på iOS och Android 13+ krävs användarens uttryckliga samtycke för att visa notifikationer
  • Offline — lokala notifikationer fungerar utan internetanslutning, vilket gör dem mer pålitliga än push

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å