Push известия в мобилната разработка — същност, какви биват и как работят

Автор: IT Sectr Публикувано: 2026-03-19 Време за четене: 8 мин

Push известията са съобщения, изпращани от сървъра към мобилното устройство дори когато приложението е затворено. Според данни на Google Firebase, 2024, Push известията се обработват чрез специализирани услуги — FCM на Android и APNS на iOS, които поддържат доставка в реално време до милиони устройства едновременно. Те се превърнаха в неразделна част от потребителското изживяване в съвременните мобилни приложения.

Основни точки

  • Push известия — съобщения от сървъра, доставяни чрез FCM или APNS.
  • FCM (Firebase Cloud Messaging) — основната услуга за Android с поддръжка на iOS.
  • APNS (Apple Push Notification Service) — собствена услуга на Apple за iOS и macOS.
  • Типове известия се делят на текстови, медийни и тихи известия.
  • Токени на устройства — уникални идентификатори за насочена доставка на Push съобщения.

Какво представляват Push известията?

Push известията са кратки съобщения, които сървърът на приложението изпраща на устройството на потребителя без неговото изрично искане. Те се показват под формата на банери, значки върху иконата или звукови сигнали, привличайки вниманието на потребителя към приложението и информирайки за важни събития.

Определение и предназначение

Push известието се състои от заглавие, тяло на съобщението и незадължителни данни (payload). За разлика от SMS, Push известията са безплатни за потребителя и се доставят чрез инфраструктура на облачни услуги — FCM за Android и APNS за iOS. Основните цели на Push известията: повишаване на ангажираността, информиране за събития и връщане на потребителя в приложението.

Статистиката на използване показва, че правилно настроените Push известия увеличават задържането на приложението с 30-60%. Прекалената честота на известията обаче води до отписвания — повече от 60% от потребителите изключват известията, ако се изпращат повече от три пъти на ден.

Архитектура на Push системата

Push системата включва три компонента: сървър на приложението (app server), платформена услуга (FCM/APNS) и клиентско приложение на устройството. Сървърът изпраща заявка към платформената услуга, която доставя известието на целевото устройство чрез постоянна връзка с операционната система.

Как работят Push известията?

Механизмът на доставка на Push известията се основава на постоянна връзка между устройството и платформената услуга. Операционната система поддържа криптиран комуникационен канал, през който преминават всички Push съобщения.

Регистрация и получаване на токен

При първото стартиране приложението иска разрешение за изпращане на известия и получава уникален токен на устройството от FCM или APNS. Този токен е низ с дължина до 4 KB, който уникално идентифицира инстанцията на приложението. Токенът се променя при преинсталиране на приложението или възстановяване на устройството от резервно копие.

kotlin
class FirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(
        message: RemoteMessage
    ) {
        showNotification(message.notification)
    }
}

Изпращане чрез сървъра на приложението

Сървърът на приложението изпраща HTTP заявка към FCM API или APNS API, като посочва целевия токен, заглавието, тялото и допълнителните данни. Платформената услуга отговаря със статус на доставка: success, invalid token (устройството е изтрило приложението) или rate-limited (превишена честота на изпращане).

js
fetch("https://fcm.googleapis.com/fcm/send", {
    method: "POST",
    headers: {
        "Authorization": "key=AIzaSy...",
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        to: "device_token_here",
        notification: {
            title: "изпратете token на вашия собствен сървър",
            body: "У вас новое уведомление!"
        }
    })
})

FCM срещу APNS: сравнение на платформи

Изборът между FCM и APNS зависи от целевата платформа. FCM поддържа Android и iOS, APNS — само екосистемата на Apple. Нека разгледаме ключовите разлики, важни за разработката на крос-платформени мобилни приложения.

Firebase Cloud Messaging (FCM)

FCM е услуга на Google, работеща върху Google Play Services. Поддържа две схеми за доставка: известия с автоматично показване (display notifications) и data-известия, които приложението обработва самостоятелно. FCM е безплатен и няма ограничения за броя на изпращаните съобщения.

Apple Push Notification Service (APNS)

APNS е услуга на Apple с поддръжка на мултимедийни прикачени файлове (изображения, видео, аудио) с размер до 10 MB. За изпращане чрез APNS е необходим TLS сертификат или ключ за удостоверяване. APNS ограничава честотата на изпращане до едно устройство — не повече от 150 известия на минута, след което се активира ограничаване на скоростта.

ХарактеристикаFCMAPNS
ПлатформиAndroid, iOS, WebiOS, macOS, watchOS
ИзискванияGoogle Play ServicesApple Developer Program
Медиядо 4 KB (данни)до 10 MB (прикачени)
Приоритетnormal/highimmediate/power-saving
Ценабезплатнобезплатно (изисква се акаунт)

Типове Push известия

Push известията се класифицират по начин на показване и предназначение. Разбирането на типовете помага да изберете правилната стратегия за всеки сценарий на взаимодействие с потребителя.

Текстови известия (Display Notifications)

Най-често срещаният тип — показвано известие със заглавие и тяло. Операционната система автоматично го показва в системната лента, на заключения екран и като банер. Разработчикът може да настрои звук, вибрация, значка върху иконата и бутони за действие за директни операции (отговор, отваряне, отхвърляне).

Известия с данни (Data Notifications)

Data-известията съдържат само payload без визуално показване. Приложението ги обработва във фонов режим: синхронизира данни, актуализира кеша или стартира изтегляне. На Android data-известията се доставят гарантирано, на iOS — само когато приложението е активно или чрез background fetch.

Мултимедийни и rich известия

Съвременните мобилни операционни системи поддържат разширени и медийни известия с изображения, GIF, видео и аудио. На iOS това се реализира чрез UNNotificationAttachment, на Android — чрез BigPictureStyle и InboxStyle за персонализиране на вида на известието в системната лента.

Тихи (Silent) известия

Тихите известия не се показват на потребителя и се използват за фонова синхронизация. На iOS те имат висок приоритет за задачи като актуализиране на данни преди отваряне на приложението. Android ги третира като data-известия с минимален приоритет.

Настройка на Push известия в проекта

Настройката на Push известия изисква действия на ниво инфраструктура, сървърна част и клиентски код. Нека разгледаме типичния процес за крос-платформен мобилен проект.

Настройка на FCM за Android

За Android трябва да създадете проект в Firebase Console, да добавите google-services.json към проекта и да конфигурирате FirebaseMessagingService. Токенът на устройството се получава чрез FirebaseInstanceId или FirebaseMessaging.getInstance().token, след което се изпраща на сървъра чрез API при първото стартиране или при промяната му.

Настройка на APNS за iOS

За iOS е необходима абонамент за Apple Developer Program, създаване на Push сертификат или APNS ключ в Developer Portal и активиране на Capability Push Notifications в Xcode. Регистрацията за известия се извършва чрез UIApplication.shared.registerForRemoteNotifications с получаване на deviceToken в AppDelegate.

swift
import UIKit
import UserNotifications

@main
class AppDelegate: UIResponder,
    UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didRegisterForRemoteNotificationsWithDeviceToken
        deviceToken: Data
    ) {
        let token = deviceToken
            .map { String.format("%02x", $0) }
            .joined()
        // отправить token на свой сервер
    }
}

Сървърно изпращане

От страна на сървъра Push известията се изпращат чрез REST API или Admin SDK. За FCM се използва Firebase Admin SDK (достъпен за Node.js, Java, Python, Go), за APNS — pusher библиотеки (pushy за Java, apn2 за Node.js). Препоръчва се съхраняване на токените в базата данни с времеви печат на последната актуализация.

Сигурност на Push известията

Сигурността на Push известията е критично важна, тъй като чрез тях могат да се предават поверителни данни. И двете платформи предоставят основни механизми за защита, но разработчикът трябва да ги използва правилно.

Криптиране на payload

Payload на Push известието може да съдържа лични данни на потребителите: имена, суми на транзакции, връзки към съобщения. Дори ако комуникационният канал между FCM/APNS и устройството е криптиран, данните могат да бъдат прихванати на ниво приложение при прихващане на известието от софтуер на трета страна. Препоръчва се криптиране на чувствителния payload на сървъра с алгоритъм AES-256 и декриптирането му на устройството с ключ, съхраняван в Keychain (iOS) или EncryptedSharedPreferences (Android).

Валидиране на токени на сървъра

Токенът на устройството е идентификатор на сесия, който може да бъде компрометиран при взлом на устройството или прихващане на трафика. Сървърът на приложението трябва да проверява токените преди изпращане: да ги сравнява с базата данни, да проследява неактивни токени и да ги изтрива при повтарящи се грешки InvalidToken. FCM и APNS връщат статус InvalidRegistration за невалидни токени — не го игнорирайте.

Защита от спам с известия

Без контрол на честотата, Push известията могат да станат инструмент за спам, който дразни потребителите и намалява задържането. Задайте ограничения на сървъра: не повече от 5 известия на час за един потребител и не повече от 3 еднакви съобщения. За транзакционни известия (потвърждение на поръчка, смяна на парола) ограниченията могат да бъдат по-високи — до 10 на час, тъй като носят критично важна информация. Използвайте ограничаване на скоростта на ниво API за изпращане, така че нападателят да не може да задейства масово изпращане чрез вашия сървър.

Често задавани въпроси

Могат ли да се изпращат Push известия без FCM на Android?

Да, директно свързване към APNS не се поддържа на Android — за устройства без Google Play Services се използват алтернативи като Huawei Mobile Services (HMS) и собствени WebSocket връзки. Въпреки това FCM остава стандарт за повечето приложения благодарение на безплатността и надеждността си.

Как работи доставката на Push при изключен интернет?

FCM и APNS запазват последното известие на своите сървъри и го доставят при възстановяване на връзката. На всяко устройство се съхранява само последното известие от всяко приложение, така че при продължително отсъствие на мрежа се губят междинните съобщения.

Защо Push известията не пристигат на iOS?

Най-честите причини са изтекъл Push сертификат APNS (валиден 1 година), невалиден токен на устройството, изключени известия в настройките или включен режим на пестене на енергия. Проверете сертификата в Apple Developer Console и се уверете, че приложението иска разрешение чрез UNUserNotificationCenter.

Как да проследя, че потребителят е отворил Push известие?

На Android използвайте PendingIntent в NotificationCompat.Builder с проследяване на отваряне чрез Intent. На iOS — методът UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). FCM предоставя отчети за доставка и отваряния за всяко изпратено известие.

Влияят ли Push известията на батерията?

Незначително — Push известията не поддържат постоянна връзка; операционната система използва единен системен канал за всички приложения, което минимизира общата консумация на енергия. Честото изпращане (на всеки 5 минути) изразходва повече енергия за събуждане на устройството и излизане от режим на сън. Тихите известия на iOS изразходват повече енергия поради активиране на приложението във фонов режим за обработка на получените данни.

Резюме

  • Push известия — съобщения от сървъра към устройството чрез FCM или APNS.
  • Токен на устройството — уникален идентификатор за насочена доставка на Push.
  • FCM поддържа Android, iOS и Web; APNS — само екосистемата на Apple.
  • Data-известия се обработват във фонов режим без показване на потребителя.
  • Медийни известия на iOS поддържат прикачени файлове до 10 MB, на Android — чрез разширени стилове.
  • APNS сертификати изискват ежегодно подновяване в Apple Developer Portal.
  • Ограничаване на скоростта FCM и APNS защитава потребителите от спам с известия, ограничавайки честотата на изпращане до всяко устройство.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също