Helyi értesítések a mobilfejlesztésben: lényeg, milyen típusok vannak és hogyan működnek

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

A helyi értesítés egy olyan üzenet, amelyet az alkalmazás a felhasználónak küld távoli szerver részvétele nélkül. Az összes adat közvetlenül a címzett eszközén kerül feldolgozásra és megjelenítésre. Ez a mechanizmus alkalmas emlékeztetőkhöz, időzítőkhöz és ébresztőkhöz, amikor az alkalmazás a háttérben van vagy bezárták. A Apple Developer Documentation szerint az UNUserNotificationCenter központosított kezelést biztosít a helyi értesítések számára iOS-en.

Főbb pontok

  • Helyi értesítés — az eszköz által ütemezett és kézbesített üzenet szerver részvétele nélkül
  • Platformok — Android a NotificationManager-t, iOS az UNUserNotificationCenter-t használja
  • Ütemezés — az értesítések idő, helymeghatározás vagy naptár alapján késleltethetők
  • Korlátozások — a helyi értesítések nem működnek eszközök között, és külön szinkronizációs logikát igényelnek
  • UX — a megfelelően beállított értesítések növelik a felhasználói elkötelezettséget és visszacsábítják a felhasználót az alkalmazásba

Mi az a helyi értesítés?

A helyi értesítés egy triggerelt üzenet, amelyet az operációs rendszer generál és jelenít meg ugyanazon az eszközön, ahol az alkalmazás telepítve van. A push értesítésekkel ellentétben a helyiek nem mennek keresztül külső szerveren — az ütemezési logika teljes egészében a kliens oldalon fut.

Az ilyen értesítések az alkalmazás állapotától függetlenül működnek: aktív, minimalizált vagy teljesen bezárt. Az operációs rendszer gondoskodik a kézbesítésről a megadott időpontban, a fejlesztő csak a tartalmat és a triggert adja meg.

A rendszer garantálja a helyi értesítés kézbesítését még hálózat hiányában is. Ez kulcsfontosságú előny a push értesítésekkel szemben, amelyek stabil internetkapcsolatot és működő szervert igényelnek.

A kérés fő összetevői

Minden helyi értesítés három részből áll: tartalom (cím, szöveg, hang), trigger (időbeli vagy geo-feltétel) és a kérés azonosítója. Az azonosító lehetővé teszi az értesítés törlését vagy frissítését a kézbesítés előtt.

A fejlesztő legfeljebb 64 helyi értesítést állíthat be egy alkalmazáshoz iOS-en, és korlátlan számút Androidon. A különbség az operációs rendszerek architekturális korlátaiból adódik.

Hogyan működnek a helyi értesítések iOS-en és Androidon?

Mindkét platform saját API-kat biztosít a helyi értesítésekkel való munkához. iOS-en a központi elem az UNUserNotificationCenter, Androidon — a NotificationManager. A különböző interfészek ellenére a logika ugyanaz: az alkalmazás létrehoz egy kérést, regisztrálja a rendszerben, és az operációs rendszer kézbesíti az értesítést a megadott időpontban.

Az iOS a UNCalendarNotificationTrigger-t használja naptári eseményekhez, a UNTimeIntervalNotificationTrigger-t időközökhöz és a UNLocationNotificationTrigger-t helymeghatározáshoz. Az Android AlarmManager-t, WorkManager-t és pontos ütemezést kínál a setExact segítségével.

Az Android 12-től — a SCHEDULE_EXACT_ALARM külön engedélyt igényel a felhasználótól. iOS-en az engedély egyszer kérendő az UNUserNotificationCenter.requestAuthorization segítségével, és a felhasználó kiválasztja a hozzáférési szintet: bannerek, hangok, jelvények.

A helyi értesítések típusai

A helyi értesítéseket a trigger típusa szerint osztályozzuk, nem a tartalom szerint. Minden típus meghatározza, hogy mikor és milyen feltételek mellett jelenik meg az értesítés a felhasználónak.

A triggerek összehasonlítása platformonként

iOS-en és Androidon a trigger típusok eltérően vannak implementálva, bár a logikai osztályozás ugyanaz. Az iOS dátumokhoz a UNCalendarNotificationTrigger-t, időközökhöz a UNTimeIntervalNotificationTrigger-t, helymeghatározáshoz a UNLocationNotificationTrigger-t használja. Az Android AlarmManager-t kínál setExact és setRepeating funkciókkal, valamint WorkManager-t késleltetett feladatokhoz.

Trigger típusaLeírásPélda
IdőközÉrtesítés N másodperccel az indítás utánVisszaszámláló időzítő
Naptári dátumÉrtesítés adott időpontban és dátumbanTalálkozó emlékeztető
HelymeghatározásÉrtesítés területre lépéskor/elhagyáskorEmlékeztető a bolt mellett
Feltétel nélküliAzonnali kézbesítés API hívásraLetöltési értesítés

iOS-en elérhető továbbá az UNNotificationAttachment — kép, hang vagy videó melléklet az értesítés szövegében. Az Android egyéni sablonokat támogat gombokkal és nagy képekkel a NotificationCompat.Style segítségével.

A trigger kiválasztása a forgatókönyvtől függ: a naptári emlékeztetők a naptári triggerrel működnek a legjobban, a geo-emlékeztetők — a helymeghatározással. Az időköz triggerek alkalmasak rögzített periódusú rendszeres eseményekhez.

A triggerek viselkedése háttérben

iOS-en a helyi értesítéseket a rendszer kézbesíti akkor is, ha az alkalmazás be van zárva — az UNUserNotificationCenter önállóan kezeli a várakozási sort. Androidon a kézbesítés a kiválasztott mechanizmustól függ: az AlarmManager akkor is aktiválódik, ha a kijelző ki van kapcsolva, a WorkManager pedig figyelembe veszi az energia takarékosságot.

Használati forgatókönyvek mobilalkalmazásokban

A helyi értesítések olyan feladatokat oldanak meg, ahol a külső infrastruktúra felesleges vagy nem elérhető. Fő forgatókönyvek: emlékeztetők, időzítők, oktató tippek és késleltetett műveletek.

  • Emlékeztetők — a naptár alkalmazás helyi értesítést hoz létre az esemény adott dátumára
  • Oktató tippek — a telepítés után egy nappal az alkalmazás tippet mutat a képernyőről
  • Időzítők — a konyhai időzítő a beállított idő után aktiválódik, még ha az alkalmazás be is van zárva
  • Műveletek előrehaladása — értesítés a letöltés vagy adatexport befejezéséről

A Localytics kutatásai szerint azok az alkalmazások, amelyek helyi emlékeztetőket használnak, 35%-kal több felhasználót tartanak meg a telepítés utáni első héten. Ez a helyi értesítéseket hatékony eszközzé teszi az onboardinghoz.

Fontos, hogy ne éljünk vissza a gyakorisággal — a rendszer maga csoportosítja az egy alkalmazástól érkező értesítéseket, és a felhasználó kikapcsolhatja az összes helyi értesítést, ha zavarják. Az optimális gyakoriság nem több, mint napi 2–3 értesítés nem kritikus események esetén.

Ütemezési példa Androidon

Helyi értesítés Androidon történő ütemezéséhez használja a NotificationManager-t az AlarmManager-rel együtt. Android 8+ esetén először létre kell hozni egy értesítési csatornát, különben az értesítés nem jelenik meg.

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

val channel = NotificationChannel(
    channelId,
    "Emlékeztetők",
    NotificationManager.IMPORTANCE_HIGH
).apply {
    description = "Csatorna a feladatok emlékeztetőihez"
}

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
)

Android 12+ esetén ellenőrizze a SCHEDULE_EXACT_ALARM engedélyt a setExact hívása előtt. Ha az engedély nincs megadva — használja a setWindow-t, amely garantálja a kézbesítést egy időablakon belül.

Feldolgozás BroadcastReceiver-ben

Amikor az AlarmManager aktiválódik, a rendszer egy broadcast Intent-et küld, amelyet a BroadcastReceiver fogad. Ezen belül létre kell hozni és meg kell jeleníteni az értesítést a NotificationManager segítségével. Győződjön meg arról, hogy a PendingIntent FLAG_UPDATE_CURRENT-et használ, különben az adatok megváltozásakor a régi értesítések továbbra is az elavult Intent-et használják.

Ütemezési példa iOS-en

iOS-en a helyi értesítések az UNUserNotificationCenter segítségével hozhatók létre az UNMutableNotificationContent és az egyik trigger használatával. Az ütemezés előtt engedélyt kell kérni a felhasználótól.

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 = "Feladat emlékeztető"
content.body = "Ne felejtse el befejezni a jelentést 18:00-ig"
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)

Az iOS legfeljebb 64 egyidejű helyi értesítési kérést támogat. Ha a korlát túllépésre kerül — a rendszer elutasítja az új kéréseket, amíg az aktív kérések kézbesítésre nem kerülnek vagy törlésre. Az aktuális sor ellenőrzéséhez használja a getPendingNotificationRequests-t.

A delegált válasz feldolgozása

Amikor a felhasználó interakcióba lép egy iOS helyi értesítéssel, meghívásra kerül az userNotificationCenter:didReceive response metódus az UNUserNotificationCenterDelegate delegáltban. Ebben a metódusban elérhető a kérés azonosítója, actionIdentifier (melyik gomb lett megnyomva) és az egyéni userInfo. Ez lehetővé teszi az értesítés egyszerű megnyitásának megkülönböztetését egy adott műveleti gomb megnyomásától.

A helyi értesítések legjobb gyakorlatai

Annak érdekében, hogy a helyi értesítések hasznosak legyenek és ne idegesítsék a felhasználót, tartsa be néhány kulcsfontosságú szabályt. Először: ellenőrizze a gyakoriságot — nem kritikus események esetén legfeljebb napi 2–3 értesítés, különben a felhasználó kikapcsolja az alkalmazás összes értesítését.

Másodszor: adjon választási lehetőséget a felhasználónak. Adjon hozzá a felülethez lehetőséget bizonyos típusú helyi értesítések kikapcsolására. Androidon ehhez használjon külön NotificationChannel-t alacsony importance-szal, iOS-en — külön kategóriát az alkalmazás beállításaiban.

Harmadszor: kontextuális relevancia — az értesítés akkor jelenjen meg, amikor a felhasználónak szüksége van rá. A geo-triggerek ideálisak az otthon közeli teendők emlékeztetőihez, a naptári triggerek — találkozókhoz, az időköz triggerek — rendszeres tevékenységekhez, mint a vízivás vagy nyújtás. Ne keverje a típusokat szükségtelenül.

Negyedszer: teszteljen valós eszközökön. Az iOS szimulátor nem emulálja a helyi értesítések kézbesítésének összes forgatókönyvét, különösen a háttérben. Androidon használja az adb shell dumpsys notification parancsot az ütemezett értesítések sorának és paramétereinek ellenőrzéséhez. Ötödször: mindig biztosítson lehetőséget a felhasználónak az értesítések kikapcsolására az alkalmazás felületén keresztül — ez kötelező UX követelmény és App Store Review Guidelines előírás.

Gyakran Ismételt Kérdések

Miben különbözik a helyi értesítés a push-tól?

A helyi értesítést az eszköz ütemezi és kézbesíti szerver részvétele nélkül. A push értesítés külső szolgáltatást (FCM, APNS) és internetkapcsolatot igényel. A helyi értesítések offline működnek, a push — csak hálózati hozzáféréssel.

Hány helyi értesítés ütemezhető?

Az iOS legfeljebb 64 egyidejűleg ütemezett kérésre korlátoz. Az Androidnak nincs szigorú korlátja, de 500 értesítés felett csökkenhet a rendszer teljesítménye és befolyásolhatja a kézbesítési időt.

Törölhető-e a helyi értesítés ütemezés után?

Igen, iOS-en használja a removePendingNotificationRequests parancsot a kérés azonosítójával. Androidon hívja meg a NotificationManager.cancel parancsot, vagy törölje a PendingIntent-et az AlarmManager segítségével. A törléshez egyedi azonosító szükséges.

Szükséges-e felhasználói engedély a helyi értesítésekhez?

iOS-en az engedély kötelezően kérendő a requestAuthorization segítségével. Android 13+ (Tiramisu) esetén szintén szükséges a POST_NOTIFICATIONS engedély. Az Android régebbi verziói nem igényelnek kifejezett engedélyt a helyi értesítésekhez.

Hogyan lehet gombokat hozzáadni a helyi értesítéshez?

iOS-en hozzon létre UNNotificationAction objektumot, és adja hozzá az UNNotificationCategory-hoz. Androidon használja a NotificationCompat.Builder.addAction metódust PendingIntent-tel a BroadcastReceiver számára. Minden gomb külön műveletet indít el az alkalmazásban.

Összefoglalás

  • Helyi értesítések — az eszköz által ütemezett és kézbesített üzenetek szerver infrastruktúra nélkül
  • UNUserNotificationCenter — a fő API a helyi értesítésekkel való munkához iOS-en
  • NotificationManager — a fő API a helyi értesítésekkel való munkához Androidon
  • Trigger típusok — időköz, naptári dátum, helymeghatározás és feltétel nélküli kézbesítés
  • Korlátok — iOS 64 ütemezett kérésre korlátoz, Androidnak nincs szigorú korlátja
  • Engedélyek — iOS-en és Android 13+ esetén a felhasználó kifejezett beleegyezése szükséges az értesítések megjelenítéséhez
  • Offline — a helyi értesítések internetkapcsolat nélkül is működnek, ami megbízhatóbbá teszi őket a push-nál

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