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

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

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

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

  • FCM — универсална услуга за Android и iOS (чрез APNS прокси)
  • APNS — родна услуга на Apple за iOS, macOS, watchOS
  • Богатите известия съдържат медийно съдържание (изображения, бутони, аудио) чрез App Extensions
  • Silent Push актуализира данни на заден план без показване на потребителя
  • Device Token — уникален идентификатор на устройството; трябва да се съхранява и актуализира на сървъра
  • Notification Channels (Android) и Notification Categories (iOS) — групиране и настройка на известия от потребителя

Какво са push известията?

Push известието е съобщение, което сървърът изпраща на мобилно устройство без запитване от приложението. Съобщението преминава през облачна услуга (FCM или APNS), която го доставя на устройството дори ако приложението е затворено. Известията се разделят на два вида: display известия (показват се на потребителя) и data известия (предават данни за фонова обработка).

Архитектурата на push известията включва три компонента: (1) сървър на приложението — изпраща заявка към FCM/APNS; (2) облачна услуга — насочва известието; (3) клиентско приложение — получава и обработва известието. Сървърът трябва да знае Device Token на устройството, за да изпрати известие точно до него. За масови изпращания се използва Topic Subscription — абониране на устройства за тематични канали (новини, промоции, време).

На всяко устройство известията се обработват от операционната система: Android — чрез NotificationManager и NotificationChannel, iOS — чрез UNUserNotificationCenter. Потребителят може да конфигурира поведението на известията за всеки канал: разрешаване на звук, банери, показване на заключен екран или пълно изключване. Правилната конфигурация на каналите повишава ангажираността и намалява процента на отписване.

В IT Sectr проектираме системата за push известия, като вземаме предвид платформените особености от самото начало. Ключови решения: избор между FCM и директен APNS, формат на payload, честота на изпращане и механика на абонаментите. Това помага да се избегнат ситуации, при които известията не достигат или се блокират от системата.

FCM срещу APNS

Firebase Cloud Messaging (FCM) е кросплатформената услуга на Google за доставка на известия. FCM поддържа Android, iOS, Web и Flutter. На iOS FCM работи чрез APNS: FCM изпраща заявка до APNS, който доставя известието на устройството. Предимства на FCM: единен API за двете платформи, вградена аналитика, A/B тестване, теми и сегменти на аудиторията.

Apple Push Notification Service (APNS) е родната услуга на Apple. Работи само на Apple устройства (iOS, macOS, watchOS, tvOS). Изисква директно упълномощаване чрез TLS сертификат или токен (JWT). APNS осигурява минимално забавяне на доставката и директна интеграция с iOS функции: PushKit, Notification Service Extension и критични предупреждения.

Изборът между FCM и APNS зависи от архитектурата на проекта. Ако приложението е само за iOS — APNS дава повече контрол. Ако е кросплатформено — FCM е по-удобен с единен API. Много проекти използват FCM като основна услуга, а на iOS допълнително настройват PushKit за VoIP. Хибриден подход позволява да се получи най-доброто от двете системи.

Характеристика FCM APNS
ПлатформиAndroid, iOS, Web, FlutteriOS, macOS, watchOS, tvOS
УпълномощаванеСървърен ключ (Firebase Console)TLS сертификат или JWT токен
Максимален payload4 KB (data), 2 KB (notification)4 KB
ТемиВградени (Topic Messaging)Не (реализират се на сървъра)
Silent PushПоддържа сеПоддържа се (content-available)
PushKitНеДа (VoIP, live activities)
АналитикаFirebase AnalyticsНяма вградена
Доставка на изключено устройствоОграничено (зависи от производителя)Да, чрез PushKit

Видове известия (Rich, Silent, Interactive)

Rich Notification (Богати известия)

Rich Notification е известие, което съдържа не само текст, но и медийно съдържание: изображения, видео, аудио и бутони за действие. На Android се реализира чрез стилове NotificationCompat: BigPictureStyle (голямо изображение), BigTextStyle (свит/разширен текст), InboxStyle (списък съобщения), MediaStyle (контрол на възпроизвеждането). На iOS се използва Notification Content Extension — отделен target с персонализиран UI за разширеното известие.

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

Silent Push (content-available на iOS) е известие, което се доставя без показване на потребителя. Предназначено е за фонова актуализация на данни: синхронизация на съдържание, предварително зареждане, актуализации на widgets. На iOS Silent Push изисква включване на Background Modes → Remote notifications. На Android за обработка на фонови известия се използва FirebaseMessagingService с onMessageReceived. Важно: на iOS Silent Push има ограничения на честотата и не гарантира доставка, ако приложението не е на преден план.

Interactive Notification (Интерактивни известия)

Interactive Notification позволява на потребителя да извърши действие без да отваря приложението. На Android това са бутони (Action) в известието: „Отговори", „Одобри", „Отхвърли". Действията се обработват чрез PendingIntent, който стартира BroadcastReceiver или Service. На iOS Notification Action се регистрира чрез UNNotificationAction и UNNotificationCategory. Бутоните могат да бъдат foreground (отваря приложението), background (изпълнява на заден план) или destructive (необратимо действие — изтриване, блокиране).

Notification Content Extension и Service Extension

Notification Content Extension (iOS) — персонализиран view controller за показване на разширено съдържание на известието при продължително натискане или 3D Touch. Notification Service Extension (iOS) — междинен софтуер за модифициране на съдържанието на известието преди показване: декриптиране на E2E съобщения, зареждане на изображение, объркване на поверителни данни. На Android няма директни аналози — всички модификации се извършват в FirebaseMessagingService.

Настройка на известия на Android и iOS

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

За Android е необходимо: (1) добавяне на Firebase SDK към проекта (google-services.json); (2) създаване на NotificationChannel (Android 8+) за всяка категория известия; (3) реализиране на FirebaseMessagingService за получаване на токени и входящи съобщения. Notification Channel е задължителен — без него известията няма да се показват на Android 8+. Каналите имат приоритет (IMPORTANCE_HIGH — звук + изскачащ прозорец, IMPORTANCE_LOW — без звук) и се конфигурират от потребителя в системните настройки.

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

За iOS е необходимо: (1) включване на Push Notifications capability в Xcode; (2) конфигуриране на APNS ключ на Apple Developer Portal; (3) искане на разрешение чрез UNUserNotificationCenter.requestAuthorization — това е системен диалог, който се показва веднъж. Отговорът на потребителя е критичен: ако разрешението не бъде получено, известията няма да се доставят. Препоръчва се да обясните на потребителя защо са необходими известията, преди да покажете системния диалог (pre-permission prompt).

Инструменти и Token

Device Token (iOS) и Registration Token (Android) са уникални идентификатори на устройството за push известия. Токенът се генерира при първото стартиране на приложението и може да се промени: при преинсталиране, изчистване на данни, нулиране на настройките за поверителност. Сървърът трябва редовно да актуализира токените. Firebase предоставя удобен API за управление на токени чрез onNewToken, както и панел за тестово изпращане на известия (Firebase Console → Cloud Messaging).

Topic Subscription е един от най-ефективните механизми на FCM. Устройството се абонира за тема (напр. „news", „promo_users_ios") и сървърът изпраща известия по тема, без да е необходимо да съхранява списък с токени. Firebase Topics поддържа до милион абонати на тема и условно изпращане (Condition) чрез език за изрази: „'news' in topics && ('US' in topics || 'UK' in topics)".

Notification Payload е JSON структурата, изпращана чрез FCM/APNS. За FCM: отделно notification (видима част — заглавие, тяло, изображение) и data (персонализирани полета за приложението). За APNS: aps речник с alert, badge, sound, category и content-available. Правилната структура на payload е критична: ако notification + data пристигнат едновременно, приложението на заден план може да не получи data. Препоръчва се използването само на data съобщения за Android и предаване на визуалните полета отделно чрез FCM Console.

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

Каква е разликата между FCM и APNS?

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

Какво е Rich Notification?

Rich Notification е разширено известие с медийно съдържание: изображения, видео, аудио, бутони за действие. На iOS се реализира чрез Notification Content Extension; на Android чрез BigPictureStyle и InboxStyle.

Как работи Device Token?

Device Token е уникален идентификатор на устройството за изпращане на push известия. На Android това е Registration Token от FCM; на iOS Device Token от APNS. Токенът може да се промени при преинсталиране на приложението или нулиране на настройките, затова трябва да се актуализира на сървъра.

Какво е Silent Push и за какво служи?

Silent Push (тихо известие) е известие без показване на потребителя. Използва се за фонова актуализация на данни: синхронизация на съдържание, актуализации на widgets, предварително извличане. На iOS изисква включване на Background Modes → Remote notifications.

С какво PushKit се различава от обикновените push известия?

PushKit е рамка на Apple за доставка на известия с висок приоритет, използвана във VoIP приложения (обаждания, месинджъри). PushKit доставя известието дори ако приложението е спряно и гарантира стартиране на приложението за обработка.

Обобщение

  • FCM — кросплатформена услуга на Google; APNS — родна услуга на Apple
  • Rich Notification включва медия и бутони; Silent Push актуализира данни без показване
  • Notification Channel (Android) и Notification Category (iOS) — задължителни за групиране на известия
  • Device Token — уникален идентификатор; трябва редовно да се актуализира на сървъра
  • Topic Subscription опростява масовите изпращания без съхраняване на списък с токени
  • PushKit — за критични известия (VoIP, жизненоважни предупреждения)
  • Notification Payload трябва да бъде структуриран според платформата: notification + data за FCM, aps за APNS

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

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

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