Silent Push — lényege, háttérfeladatok és kézbesítési beállítás

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

A Silent Push az iOS push-értesítés egy olyan típusa, amelyet a készülékre a felhasználó számára történő megjelenítés és hangjelzés nélkül kézbesítenek. A csendes értesítés fő célja az adatok háttérszinkronizálása, a tartalom frissítése és olyan rövid feladatok végrehajtása, amelyek nem igényelnek a felhasználó figyelmét. Az Apple Developer Documentation, 2026 szerint a Silent Push 30 másodpercre aktiválja az alkalmazást a háttérben a beérkező adatok feldolgozásához, majd a rendszer az akkumulátor kímélése érdekében visszahelyezi a készüléket alvó módba.

Főbb pontok

  • Háttéraktiválás — A Silent Push 30 másodpercre felébreszti az alkalmazást a háttérben az adatok feldolgozásához, a felhasználó részvétele nélkül.
  • Content-available kulcs — kötelező jelző az APNS csomagban 1 értékkel, amely megkülönbözteti a csendes értesítést a szokávostól.
  • Akkumulátor kímélése — a rendszer optimalizálja a silent push kézbesítését: alacsony töltési szintnél vagy energiatakarékos módban a kézbesítés késhet vagy törlődhet.
  • Gyakorisági korlátozások — az iOS nem garantálja minden silent push kézbesítését, különösen gyakori küldés vagy az alkalmazás háttérmódjában.
  • Nincs felhasználói felület — a csendes értesítés nem jelenik meg az Notification Centerben, nem játszik le hangot és nem növeli a jelvényt az alkalmazás ikonján.

Mi az a Silent Push — lényege és célja

Silent Push (csendes push-értesítés) egy iOS-mechanizmus, amely vizuális értesítés nélkül juttat el adatokat a készülékre. Ellentétben a szabványos push-szal, amely bannert jelenít meg, hangot játszik le és bekerül az Notification Centerbe, a silent push „felébreszti” az alkalmazást a háttérben és adatokat küld neki feldolgozásra. A felhasználó soha nem tud egy ilyen értesítés kézbesítéséről — az eredmény frissített tartalom a következő megnyitáskor.

Különbség a szokásos push-értesítésektől

A kulcskülönbség a JSON-csomagban rejlik: a silent push tartalmazza a content-available: 1 jelzőt és NEM tartalmaz alert, sound vagy badge értesítést. A szabványos értesítés alert-tel mindig megjelenik a felhasználónak, függetlenül a content-available-tól. A silent push csak content-available: 1-gyel és alert nélkül működik — ha alert kerül hozzáadásra, a rendszer megjeleníti az értesítést, még a háttérkézbesítés jelzőjével együtt is.

Mikor használjuk a Silent Push-t

A csendes értesítések nélkülözhetetlenek azokhoz a forgatókönyvekhez, amikor az adatoknak frissnek kell lenniük az alkalmazás megnyitásakor, de a felhasználót nem szabad megzavarni. Példák: a hírfolyam frissítése a háttérben, előfizetések szinkronizálása, új tartalom letöltése offline eléréshez, widgetek frissítése, gyorsítótár érvénytelenítése. A Silent Push-t az alkalmazás „felmelegítésére” is használják a felhasználó várt művelete előtt.

Hogyan működik a csendes értesítések kézbesítése

A Silent Push kézbesítése jelentősen eltér a szokásos értesítésektől és az energiafogyasztás optimalizálásának szabályai alá tartozik. Az iOS-rendszer megkapja a push-kérést az APNS-től, megállapítja, hogy silent push-ról van szó (content-available: 1), és dönt a kézbesítésről számos tényező alapján: az akkumulátor töltési szintje, energiatakarékos mód, az előző silent push-ok gyakorisága, az alkalmazás aktivitása és a jelenlegi CPU-terhelés.

A Power Nap és a háttérmódok szerepe

Az Apple M chippel és iOS 15+ rendelkező eszközökön a silent push integrálódik a Power Nap mechanizmussal, amely időnként felébreszti a készüléket háttérfeladatokhoz. Power Nap több silent push-t egyesít egy aktivitási periódusba, ami csökkenti a teljes energiafogyasztást. A fejlesztő nem tudja közvetlenül kezelni a Power Nap-ot — a rendszer automatikusan dönt a felhasználó viselkedése és az alkalmazás használati előzményei alapján.

30 másodperces feldolgozási ablak

Amikor a rendszer kézbesít egy silent push-t, az alkalmazás megkapja az application(_:didReceiveRemoteNotification:fetchCompletionHandler:) hívást az AppDelegate-ben. A fejlesztő köteles meghívni a completion handlert 30 másodpercen belül a helyes eredménnyel (UIBackgroundFetchResult). Ha a feldolgozás nem fejeződik be időben, a rendszer korlátozhatja a silent push-ok gyakoriságát ehhez az alkalmazáshoz, vagy teljesen leállíthatja a kézbesítésüket.

swift
// Silent Push feldolgozása az AppDelegate-ben
func application(
    _ application: UIApplication,
    didReceiveRemoteNotification userInfo: [AnyHashable: Any],
    fetchCompletionHandler completionHandler:
    @escaping (UIBackgroundFetchResult) -> Void
) {
    guard let type = userInfo["sync-type"] as? String
    else {
        completionHandler(.failed)
        return
    }

    if type == "news-feed" {
        NewsFeedSyncService().sync { success in
            completionHandler(success ? .newData : .failed)
        }
    } else if type == "cache-invalidate" {
        CacheManager.shared.invalidateAll()
        completionHandler(.newData)
    } else {
        completionHandler(.noData)
    }
}

Kézbesítések közötti intervallumok

Az Apple nem teszi közzé a pontos intervallumokat a silent push-ok között, de tesztek és dokumentáció alapján ajánlott legfeljebb 2–3 csendes értesítést küldeni óránként egy eszközre. Gyakoribb küldésnél a rendszer figyelmen kívül kezdi hagyni a silent push-okat, és az adatok nem kerülnek kézbesítésre. Ha gyakoribb szinkronizálásra van szükség, fontolja meg a URLSession használatát háttérkonfigurációval vagy VoIP push-t.

A Silent Push használati forgatókönyvei

Silent Push széleskörű feladatokban alkalmazható, ahol az adatoknak naprakésznek kell lenniük a felhasználó aktív részvétele nélkül. Nézzük meg ennek a mechanizmusnak a leghatékonyabb használati forgatókönyveit valós iOS-alkalmazásokban.

Tartalom frissítése offline eléréshez

A híralkalmazások, olvasók és utazási alkalmazások Silent Push-t használnak új tartalom háttérben történő letöltéséhez. Amikor a felhasználó megnyitja az alkalmazást, az adatok már letöltődtek és elérhetőek internet nélkül is. Ez a megközelítés drasztikusan javítja a felhasználói élményt — eltűnnek az ürüs betöltő képernyők, és a tartalom azonnal megjelenik. A szerver silent push-t küld, amikor új cikkek jelennek meg, az alkalmazás pedig a háttérben letölti őket offline olvasáshoz.

Widgetek állapotának szinkronizálása

Az iOS WidgetKit ütemezetten frissíti a widgeteket, de az azonnali frissítéshez a szerveren történő adatváltozás után a Silent Push-t használják. Az alkalmazás a háttérben feldolgozza a silent push-t, frissíti a widgetek helyi adattárolóját és kényszeríti a timeline frissítését a WidgetCenteren keresztül. A felhasználó naprakész információkat lát a widgeten az alkalmazás megnyitása nélkül — árfolyamot, időjárás-előrejelzést, kézbesítési állapotot.

Gyorsítótár érvénytelenítése és elavult adatok törlése

Amikor a szerver kritikus adatokat frissít (például díjszabási szabályokat, a prémium felhasználók számára elérhető funkciók listáját), a Silent Push lehetővé teszi a helyi gyorsítótár azonnali érvénytelenítését. A következő megnyitáskor az alkalmazás friss adatokat tölt be a szerverről ahelyett, hogy az elavult gyorsítótárat használná. Ez különösen fontos a fizetős tartalommal vagy előfizetéssel rendelkező alkalmazásoknál.

Jelvény frissítése látható értesítés nélkül

Bizonyos forgatókönyvekben a jelvényt az alkalmazás ikonján értesítés megjelenítése nélkül kell frissíteni. A Silent Push badge mezővel a csomagban lehetővé teszi a számláló értékének beállítását anélkül, hogy bannerekkel zavarná a felhasználót. Például egy csevegőalkalmazás frissítheti a jelvényt az olvasatlan üzenetek számával anélkül, hogy minden új üzenetet értesítésként jelenítene meg, ha a felhasználó az alkalmazásban tartózkodik.

Silent push beállítása: csomag és képességek

A Silent Push helyes működéséhez három szinten van szükség konfigurációra: Xcode-projekt, JSON-csomag a szerveren és feldolgozó kód az alkalmazásban. Minden szint kritikus: bármelyik lépés kihagyása azt eredményezi, hogy az értesítés szokásosként kerül kézbesítésre vagy egyáltalán nem kerül kézbesítésre.

Képességek beállítása Xcode-ban

Az Xcode-ban be kell kapcsolni a Push Notifications és a Background Modes képességeket a Remote notifications opcióval. Push Notifications tanúsítványt generál az APNS számára, a Remote notifications pedig a Background Modes-ben lehetővé teszi a rendszer számára, hogy felébressze az alkalmazást silent push érkezésekor. Remote notifications nélkül a silent push kézbesítésre kerül, de az alkalmazás nem aktiválódik a háttérben, és az adatok nem kerülnek feldolgozásra.

A JSON-csomag szerkezete

A Silent Push csomagnak tartalmaznia kell az aps kulcsot content-available: 1 értékkel és NEM tartalmazhat alert, sound vagy badge értesítést. Az egyéni mezők az aps-szal azonos szinten kerülnek továbbításra és feldolgozási adatokat tartalmaznak: művelet típusa, objektumazonosítók, metaadatok. A content-available nélküli csomag szokásos értesítésként kerül feldolgozásra; az alert-tel — szokásosként, még content-available mellett is.

json
{
    "aps": {
        "content-available": 1
    },
    "sync-type": "news-feed",
    "last-article-id": "article_8521",
    "priority": "high"
}

Feldolgozás az üféloldalon

Silent push érkezésekor az iOS meghívja az application(_:didReceiveRemoteNotification:fetchCompletionHandler:) függvényt, mielőtt az alkalmazás láthatóvá válna. Ebben a metódusban elemezni kell a userInfo-t, elvégezni a szükséges munkát (hálózati kérések, írás a Core Data-ba, gyorsítótár frissítése) és kötelezően meghívni a completionHandler-t a helyes eredménnyel 30 másodpercen belül. A completionHandler elmulasztását a rendszer hibaként érzékeli és befolyásolja a jövőbeli silent push-ok gyakoriságát.

Korlátozások és legjobb gyakorlatok

Silent Push nem megbízható adatkézbesítési csatorna kritikus műveletekhez — ez optimalizálási mechanizmus, nem garantált szinkronizálás. A fejlesztőnek meg kell értenie a korlátozásokat és úgy kell megterveznie a rendszert, hogy az alkalmazás helyesen működjön mind silent push-sal, mind anélkül.

Kézbesítési korlátozások

Az iOS nem garantálja minden silent push kézbesítését. A rendszer késleltetheti vagy törölheti a kézbesítést alacsony akkumulátorszintnél (20% alatt), Low Power Mode-ban, az előző silent push-ok magas gyakorisága esetén, valamint ha az alkalmazást hosszú ideje nem használta a felhasználó. Átlagos kézbesítési statisztika az Apple szerint: a silent push-ok körülbelül 70–80%-a 5 percen belül kézbesítésre kerül, a többi késhet vagy elveszhet.

Az Apple ajánlásai a silent push-hoz

Az Apple számos szabály betartását ajánlja a silent push hatékony használatához. Ne küldjön többet 2–3 silent push-nál óránként egy eszközre — a limit túllépése blokkoláshoz vezet. Használjon compact payload-t: a minimális csomagméret gyorsítja a feldolgozást és csökkenti a hálózati terhelést. Mindig hívja meg a completionHandler-t, és a lehető leggyorsabban: minél tovább tart a feldolgozás, annál valószínűbb, hogy a rendszer korlátozza a silent push-okat a jövőben.

A Silent Push alternatívái

Azokhoz a forgatókönyvekhez, amelyek garantált kézbesítést vagy több feldolgozási időt igényelnek, fontolja meg az alternatívákat. VoIP push (PushKit) garantálja a kézbesítést és több időt ad, de csak VoIP-alkalmazások számára készült. A Background fetch (UIApplication background fetch) ütemezetten indul a rendszer által, de nem kezdeményezhető a szerver által. A WebSocket állandó kapcsolatot tart fenn, de több akkumulátort fogyaszt és nem alkalmas minden típusú alkalmazáshoz.

Monitorozás és hibakeresés

A Silent Push hibakereséséhez használja a Console.app-ot Mac-en az alkalmazás neve szerinti szűrővel. A rendszer naplózza az egyes silent push-okat „háttérfeladat” jelöléssel és jelzi, hogy a feldolgozás sikeres volt-e. Az eszközön az ellenőrzés a Beállítások → Fejlesztői → Háttérmódok naplózása menüpontban történik. A szerveroldal az APNS Feedback Service segítségével figyelhető a kézbesítetlen értesítések észlelésére.

Gyakran ismételt kérdések

Miben különbözik a Silent Push a szokásos push-értesítéstől?

A Silent Push nem jelenik meg a felhasználónak, nem játszik le hangot és nem kerül be az Notification Centerbe. Feladata az alkalmazás aktiválása a háttérben adatok szinkronizálásához. A szokásos push mindig bannert jelenít meg és tartalmazhat hangot és jelvényt.

Mennyi idő áll rendelkezésre a Silent Push feldolgozásához?

Az alkalmazás 30 másodpercet kap a háttérfeladat elvégzésére. A completionHandler meghívása után a rendszer visszahelyezi a készüléket alvó módba. Ha nem hívja meg a completionHandler-t időben, a rendszer leállíthatja a silent push-ok kézbesítését ehhez az alkalmazáshoz.

Miért nem érkezhet meg a Silent Push a készülékre?

A rendszer késleltetheti a kézbesítést alacsony akkumulátorszintnél, energiatakarékos módban, gyakori silent push küldés esetén, vagy ha az alkalmazást hosszú ideje nem használták. Ez az iOS normál viselkedése, nem összefüggő a megvalósítási hibákkal.

Lehet a Silent Push-t szokásos értesítéssel együtt küldeni?

Igen, megadható a content-available: 1 az alert-tel együtt — ebben az esetben az értesítés megjelenik a felhasználónak, és az alkalmazás további háttéraktiválást kap. De ha a feladat csak háttérszinkronizáció megjelenítés nélkül, az alert nem adható meg.

Hogyan ellenőrizhető, hogy a Silent Push helyesen kerül feldolgozásra?

Használja a Console.app-ot Mac-en a háttérfeladatok naplóinak megtekintéséhez. Küldjön egy teszt silent push-t APNS-en keresztül, és ellenőrizze, hogy a didReceiveRemoteNotification meghívásra kerül-e a helyes completionHandler-rel. Az Xcode-ban használja a szimulátort a háttérmód imitálásával.

Összegzés

  • Silent Push — iOS háttérszinkronizációs mechanizmus, amely a felhasználó számára történő megjelenítés nélkül kézbesít adatokat, 30 másodpercre aktiválva az alkalmazást.
  • Content-available: 1 kulcs — kötelező jelző az APNS csomagban, amely megkülönbözteti a csendes értesítést a szokávostól; alert, sound és badge nem lehet jelen.
  • A kézbesítés nem garantált — az iOS optimalizálja a silent push kézbesítését az akkumulátor töltési szintje, gyakoriság és alkalmazás aktivitása alapján; a tényleges kézbesítés 70–80%.
  • Használati forgatókönyvek — tartalom háttérben történő letöltése, widget frissítése, gyorsítótár érvénytelenítése, előfizetés szinkronizálása, jelvény frissítése.
  • Gyakorisági korlátozás — legfeljebb 2–3 silent push óránként egy eszközre; a túllépés a kézbesítés blokkolásához vezet a rendszer által.
  • Az iOS késleltetheti vagy törölheti a Silent Push-t alacsony töltési szintnél, Low Power Mode-ban vagy a felhasználói aktivitás hosszú távú hiányában.
  • Silent Push — hatékony eszköz a felhasználói élmény optimalizálásához, de nem használható kritikus vagy garantált értesítésekhez.

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