Silent Push — mahiyyəti, fon tapşırıqları və çatdırılma konfiqurasiyası

Müəllif: IT Sectr Dərc olunub: 2026-03-20 Oxuma vaxtı: 9 dəq

Silent Push iOS bildirişinin bir növüdür ki, heç bir göstəriş və səs müşayişati olmadan cihaza çatdırılır. Səssiz bildirişin əsas məqsədi fon məlumat sinxronizasiyası, məzmun yenilənməsi və istifadəçi diqqətini tələb etməyən qısa tapşırıqların yerinə yetirilməsidir. Apple Developer Documentation, 2026 məlumatlarına görə, Silent Push daxil olan məlumatları emal etmək üçün tətbiqi 30 saniyə fon rejimində aktivləşdirir, bundan sonra sistem batareya enerjisinə qənaət etmək üçün cihazı yuxu rejiminə qaytarır.

Əsas məqamlar

  • Fon aktivasiyası — Silent Push istifadəçinin iştirakı olmadan məlumatları emal etmək üçün tətbiqi 30 saniyə fon rejimində oyadır.
  • content-available açarı — APNS yükündə məcburi bayraq dəyəri 1 olan, səssiz bildirişi adi bildirişdən fərqləndirir.
  • Batareyaya qənaət — sistem silent push çatdırılmasını optimallaşdırır: aşağı yük səviyyəsində və ya enerji qənaət rejimində çatdırılma təxirə salına və ya ləğv edilə bilər.
  • Tezlik məhdudiyyətləri — iOS hər silent push-un çatdırılmasına zəmanət vermir, xüsusən yüksək göndərmə tezliyində və ya tətbiq fon rejimində olduqda.
  • UI-nin olmaması — səssiz bildiriş Notification Center-də göstərilmir, səs çalmır və tətbiq ikonasında badge artırmır.

Silent Push nədir — mahiyyəti və məqsədi

Silent Push (səssiz push bildirişi) — istifadəçiyə heç bir vizual bildiriş göstərmədən cihaza məlumat çatdıran iOS mexanizmidir. Standart push-dan fərqli olaraq, hansı ki, banner göstərir, səs çalır və Notification Center-ə düşür, silent push tətbiqi fon rejimində „oyadır” və ona emal üçün məlumat ötürür. İstifadəçi belə bir bildirişin çatdırılmasından heç vaxt xəbər tutmur — nəticə növbəti açılışda yenilənmiş məzmun olur.

Adi push bildirişlərindən fərqi

Əsas fərq JSON yükündədir: silent push content-available: 1 bayrağını ehtiva edir və alert, sound və ya badge ehtiva etmir. Standart bildiriş alert ilə həmişə istifadəçiyə göstərilir, content-available-dan asılı olmayaraq. Silent push yalnız content-available: 1 ilə və alert olmadan işləyir — əgər alert əlavə edilərsə, sistem hətta fon çatdırılma bayrağı olsa belə bildirişi göstərəcək.

Silent Push nə vaxt istifadə edilməlidir

Səssiz bildirişlər məlumatların tətbiqin açılması anında təzə olması lazım olduğu, lakin istifadəçinin yayındırılmaması lazım olduğu ssenarilərdə əvəzolunmazdır. Nümunələr: xəbər lentinin fon rejimində yenilənməsi, abunələrin sinxronizasiyası, oflayn giriş üçün yeni məzmunun endirilməsi, vidjetlərin yenilənməsi, keşin etibarsızlaşdırılması. Silent Push həmçinin istifadəçinin gözlənilən hərəkətindən əvvəl tətbiqi „ısıtmaq” üçün də istifadə olunur.

Səssiz bildirişlərin çatdırılması necə işləyir

Silent Push-un çatdırılması adi bildirişlərdən əhəmiyyətli dərəcədə fərqlənir və enerji istehlakının optimallaşdırılması qaydalarına tabedir. iOS sistemi APNS-dən push sorğu alır, bunun silent push (content-available: 1) olduğunu müəyyən edir və çoxsaylı amillər əsasında çatdırılma haqqında qərar verir: batareya yük səviyyəsi, enerji qənaət rejimi, əvvəlki silent push-ların tezliyi, tətbiqin aktivliyi və cari CPU yükü.

Power Nap və fon rejimlərinin rolu

Apple M çipi və iOS 15+ olan cihazlarda silent push fon tapşırıqları üçün dövri olaraq cihazı oyadan Power Nap mexanizmi ilə inteqrasiya olunur. Power Nap bir neçə silent push-u bir aktivlik dövründə birləşdirir ki, bu da ümumi enerji istehlakını azaldır. Tərtibatçı Power Nap-ı birbaşə idarə edə bilməz — sistem qərarı istifadəçinin davranışı və tətbiqin istifadə tarixçəsi əsasında avtomatik qəbul edir.

30 saniyəlik emal pəncərəsi

Sistem silent push-u çatdırdıqda, tətbiq AppDelegate-də application(_:didReceiveRemoteNotification:fetchCompletionHandler:) çağırışını alır. Tərtibatçı məcburdur 30 saniyə ərzində completion handler-i düzgün nəticə ilə (UIBackgroundFetchResult) çağırsın. Emal vaxtında bitməzsə, sistem bu tətbiq üçün silent push tezliyini məhdudlaşdıra və ya onların çatdırılmasını tamamilə dayandıra bilər.

swift
// AppDelegate-də Silent Push-un emalı
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)
    }
}

Çatdırılmalar arası intervallar

Apple silent push-lar arasında dəqiq intervalları dərc etmir, lakin testlər və sənədləşdirmə əsasında bir cihaza saatda 2–3 səssiz bildirişdən çox olmayan göndərmək tövsiyə olunur. Daha tez-tez göndərmədə sistem silent push-ları görməməyə başlayır və məlumatlar çatdırılmır. Daha tez-tez sinxronizasiya tələb olunarsa, fon konfiqurasiyası ilə URLSession və ya VoIP push istifadə etməyi düşünün.

Silent Push-un istifadə ssenariləri

Silent Push istifadəçinin aktiv iştirakı olmadan məlumatların aktual olması lazım olduğu geniş çeşidli tapşırıqlarda tətbiq olunur. Bu mexanizmin real iOS tətbiqlərində ən təsirli istifadə ssenarilərinə baxaq.

Oflayn giriş üçün məzmun yenilənməsi

Xəbər tətbiqləri, oxuyucular və səyahət tətbiqləri fon rejimində yeni məzmunu endirmək üçün Silent Push-dan istifadə edir. İstifadəçi tətbiqi açdıqda, məlumatlar artıq endirilib və hətta internet olmadan da əlçatandır. Bu yanaşma istifadəçi təcrübəsini köklü şəkildə yaxşılaşdırır — boş yüklənmə ekranları yox olur və məzmun dərhal göstərilir. Server yeni məqalələr göründükdə silent push göndərir, tətbiq isə fon rejimində onları oflayn oxumaq üçün endirir.

Vidjetlərin vəziyyət sinxronizasiyası

iOS WidgetKit vidjetləri cədvəl üzrə yeniləyir, lakin serverdəki məlumat dəyişikliyindən sonra dərhal yeniləmə üçün Silent Push istifadə olunur. Tətbiq fon rejimində silent push-u emal edir, vidjetlər üçün yerli məlumat anbarını yeniləyir və WidgetCenter vasitəsilə timeline-ı məcburi yeniləyir. İstifadəçi tətbiqi açmadan vidjetdə aktual məlumat görür — valyuta məzənnəsi, hava proqnozu, çatdırılma statusu.

Keşin etibarsızlaşdırılması və köhnəlmiş məlumatların təmizlənməsi

Server kritik məlumatları yenilədikdə (məsələn, tariflɑndirmə qaydaları, premium istifadəçilər üçün mövcud funksiyaların siyahısı), Silent Push yerli keşi dərhal etibarsızlaşdırmağa imkan verir. Növbəti açılışda tətbiq serverdən təzə məlumatları yükləyəcək, köhnəlmiş keşdən istifadə etməyəcək. Bu, xüsusən ödənişli məzmun və ya abunə olan tətbiqlər üçün aktualdır.

Görünən bildiriş olmadan badge yenilənməsi

Bəzi ssenarilərdə bildiriş göstərmədən tətbiq ikonasında badge-i yeniləmək tələb olunur. Yükdə badge sahəsi olan Silent Push istifadəçini bannerlə narahat etmədən sayıcının dəyərini təyin etməyə imkan verir. Məsələn, söhbət tətbiqi hər yeni mesajı bildiriş kimi göstərmədən, əgər istifadəçi tətbiq daxilindədirsə, oxunmamış mesajların sayı ilə badge-i yeniləyə bilər.

Silent push konfiqurasiyası: yük və capabilities

Silent Push-un düzgün işləməsi üçün üç səviyyədə konfiqurasiya tələb olunur: Xcode layihəsi, serverdə JSON yükü və tətbiqdə emal kodu. Hər səviyyə kritikdir: hər hansı bir addımın buraxılması bildirişin adi kimi çatdırılmasına və ya ümumiyyətlə çatdırılmamasına səbəb olur.

Xcode-da capabilities konfiqurasiyası

Xcode-da Push Notifications capability və Remote notifications qeyd olunmuş Background Modes-u aktivləşdirmək lazımdır. Push Notifications APNS üçün sertifikat yaradır, Remote notifications isə Background Modes daxilində sistemə silent push alındıqda tətbiqi oyatmağa icazə verir. Remote notifications olmadan silent push çatdırılacaq, lakin tətbiq fon rejimində aktivləşməyəcək və məlumatlar emal edilməyəcək.

JSON yükünün strukturu

Silent Push yükü content-available: 1 ilə aps açarını ehtiva etməli və alert, sound və ya badge ehtiva etməməlidir. Xüsusi sahələr aps ilə eyni səviyyədə ötürülür və emal üçün məlumatları ehtiva edir: əməliyyat növü, obyekt identifikatorları, metadatanlar. Content-available olmayan yük adi bildiriş kimi emal ediləcək; alert ilə — content-available olsa belə, adi bildiriş kimi.

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

Klient tərəfində emal

Silent push alındıqda iOS tətbiq görünməzdən əvvəl application(_:didReceiveRemoteNotification:fetchCompletionHandler:) çağırır. Bu metoddan userInfo-nu analiz etmək, zəruri işləri yerinə yetirmək (şəbəkə sorğuları, Core Data-ya yazı, keşin yenilənməsi) və məcburi olaraq 30 saniyə ərzində completionHandler-i düzgün nəticə ilə çağırmaq lazımdır. CompletionHandler-in çağırılmaması sistem tərəfindən səhv kimi qəbul edilir və gələcək silent push-ların tezliyinə təsir edir.

Məhdudiyyətlər və ən yaxşı təcrübələr

Silent Push kritik əməliyyatlar üçün etibarlı məlumat çatdırılma kanalı deyil — bu optimallaşdırma mexanizmidir, zəmanətli sinxronizasiya deyil. Tərtibatçı məhdudiyyətləri başa düşməli və sistemi elə qurmalıdır ki, tətbiq həm silent push ilə, həm də onsuz düzgün işləsin.

Çatdırılma məhdudiyyətləri

iOS hər silent push-un çatdırılmasına zəmanət vermir. Sistem batareya yükü aşağı olduqda (20%-ən aşağı), Low Power Mode rejimində, əvvəlki silent push-ların yüksək tezliyində, həmçinin tətbiq uzun müddət istifadə edilmədisə çatdırılmanı təxirə sala və ya ləğv edə bilər. Orta çatdırılma statistikası Apple məlumatlarına görə: silent push-ların təxminən 70–80% 5 dəqiqə ərzində çatdırılır, qalanları təxirə salına və ya itirilə bilər.

Apple-ın silent push ilə bağlı tövsiyələri

Apple silent push-un səmərəli istifadəsi üçün bir neçə qaydaya riayət etməyi tövsiyə edir. Bir cihaza saatda 2–3 silent push-dan çox göndərməyin — limitin aşılması blokada gətirib çıxarır. Compact payload istifadə edin: minimum yük ölçüsü emalı sürətləndirir və şəbəkə yükünü azaldır. CompletionHandler-i həmişə və mümkün qədər tez çağırın: emal nə qədər uzun çəkərsə, gələcəkdə sistemin silent push-u məhdudlaşdırma ehtimalı bir o qədər yüksəkdir.

Silent Push-a alternativlər

Zəmanətli çatdırılma və ya emal üçün daha çox vaxt tələb olunan ssenarilərdə alternativləri nəzərdən keçirin. VoIP push (PushKit) çatdırılmaya zəmanət verir və daha çox vaxt verir, lakin yalnız VoIP tətbiqləri üçün nəzərdə tutulub. Background fetch (UIApplication background fetch) sistem tərəfindən cədvəl üzrə işə salınır, lakin server tərəfindən başladıla bilməz. WebSocket daimi əlaqə saxlayır, lakin daha çox batareya sərf edir və bütün tətbiq növləri üçün uyğun deyil.

Monitorinq və sazlama

Silent Push-un sazlanması üçün Mac-da Console.app-dan tətbiq adı ilə filtrdən istifadə edin. Sistem hər silent push-u „bəcərə tapşırığı” qeydi ilə qeydiyyata alır və emalın uğurlu olub-olmadığını göstərir. Cihazda yoxlama Parametrlər → Tərtibatçı → Fon rejimlərinin qeydiyyatı vasitəsilə aparılır. Server tərəfi çatdırılmayan bildirişləri aşkar etmək üçün APNS Feedback Service vasitəsilə izlənilir.

Tez-tez verilən suallar

Silent Push adi push bildiriş4indən nə ilə fərqlənir?

Silent Push istifadəçiyə göstərilmir, səs çalmır və Notification Center-ə düşmür. Onun vəzifəsi məlumatları sinxronizasiya etmək üçün tətbiqi fon rejimində aktivləşdirməkdir. Adi push həmişə banner göstərir və səs və badge ehtiva edə bilər.

Silent Push-un emalına nə qədər vaxt verilir?

Tətbiq fon tapşırığını yerinə yetirmək üçün 30 saniyə alır. CompletionHandler çağırıldıqdan sonra sistem cihazı yuxu rejiminə qaytarır. Əgər completionHandler vaxtında çağırılmazsa, sistem bu tətbiqə silent push göndərməyi dayandıra bilər.

Niyə Silent Push cihaza çatmayı bilər?

Sistem batareya yükü aşağı olduqda, enerji qənaət rejimində, tez-tez silent push göndəriləndə və ya tətbiq uzun müddət istifadə edilmədisə çatdırılmanı təxirə sala bilər. Bu iOS-un normal davranışıdır, tətbiq səhvləri ilə bağlı deyil.

Silent Push-u adi bildirişlə birlikdə göndərmək olarmı?

Bəli, content-available: 1-i alert ilə birlikdə göstərmək olar — bu halda bildiriş istifadəçiyə göstəriləcək, tətbiq isə əlavə olaraq fon aktivasiyası alacaq. Amma əgər vəzifə yalnız göstərişsiz fon sinxronizasiyasıdırsa, alert göstərilməməlidir.

Silent Push-un düzgün emal edildiyini necə yoxlamaq olar?

Mac-da Console.app istifadə edərək fon tapşırıqlarının jurnallarına baxın. APNS vasitəsilə test silent push-u göndərin və didReceiveRemoteNotification-un düzgün completionHandler ilə çağırıldığını yoxlayın. Xcode-da fon rejiminin imitasiyası ilə simulyatordan istifadə edin.

Nəticə

  • Silent Push — istifadəçiyə göstərişsiz məlumat çatdıran, tətbiqi 30 saniyə aktivləşdirən iOS fon sinxronizasiya mexanizmi.
  • content-available: 1 açarı — APNS yükündə məcburi bayraq, səssiz bildirişi adi bildirişdən fərqləndirir; alert, sound və badge olmamalıdır.
  • Çatdırılma zəmanətli deyil — iOS silent push çatdırılmasını batareya yükü, tezlik və tətbiq aktivliyi əsasında optimallaşdırır; real çatdırılma 70–80% təşkil edir.
  • İstifadə ssenariləri — fon məzmun endirməsi, vidjet yenilənməsi, keşin etibarsızlaşdırılması, abunə sinxronizasiyası, badge yenilənməsi.
  • Tezlik məhdudiyyəti — bir cihaza saatda 2–3 silent push-dan çox olmayaraq; artırma sistem tərəfindən blokadaya səbəb olur.
  • iOS Silent Push-u təxirə sala və ya ləğv edə bilər aşağı yük, Low Power Mode və ya istifadəçi aktivliyinin uzun müddət olmaması halında.
  • Silent Push — istifadəçi təcrübəsini optimallaşdırmaq üçün təsirli vasitədir, lakin kritik və ya zəmanətli bildirişlər üçün istifadə edilməməlidir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun