Notification Permission: шта је то, врсте обавештења и принцип рада

Аутор: IT Sectr Објављено: 2026-05-22 Време читања: 8 мин

Notification Permission — ово је дозвола потребна апликацији за слање пусх обавештења и локалних обавештења кориснику. Почевши од Android 13 и iOS 12, апликације су обавезне да затраже ову дозволу у време извршења кроз системски дијалог. Према Android Developers, 2024, без изричите сагласности корисника, апликација не може приказивати обавештења на уређајима са Android 13 и новијим.

Главне ствари

  • Notification Permission — дозвола у време извршења за слање обавештења, обавезна на Android 13+ и iOS 12+.
  • Android 13 је увео дозволу POST_NOTIFICATIONS, која се мора затражити у време извршења кроз Activity Result API.
  • iOS користи UNUserNotificationCenter.requestAuthorization за захтев приступа локалним и пусх обавештењима.
  • Одбијање дозволе доводи до тога да апликација не може приказивати ни локална ни пусх обавештења.
  • Поновни захтев није могућ након првог одбијања — потребно је преусмерити корисника у системска подешавања.

Шта је Notification Permission?

Notification Permission — ово је системска дозвола која регулише могућност апликације да шаље обавештења кориснику. До Android 13, све апликације су могле приказивати обавештења без захтева — било је довољно да декларишу дозволу у манифесту. Међутим, са порастом спама и наметљивих обавештења, Google је увео обавезни захтев у време извршења, слично iOS-у.

На iOS-у, дозвола за обавештења је била обавезна од iOS 8, а почевши од iOS 12 појавила су се привремена обавештења (provisional) — тиха обавештења која се достављају без звука и приказују у Центру за обавештења без изричитог захтева. Привремена обавештења омогућавају програмеру да покаже кориснику вредност обавештења пре него што затражи пуну дозволу.

Према Localytics (2024), 61% корисника iOS-а и 55% корисника Android-а пристаје на примање пусх обавештења након захтева. Стопа конверзије сагласности директно зависи од контекста захтева: апликације које траже дозволу након прве вредне интеракције добијају 40% више сагласности од оних које траже при првом покретању.

Еволуција дозвола за обавештења

Еволуција дозвола за обавештења показује како су платформе постепено ограничавале приступ апликација овом комуникационом каналу. Разумевање ове еволуције помаже програмеру да правилно рукује различитим верзијама оперативног система.

Android: од слободног приступа до строге контроле

До Android 13 (2022), свака апликација је могла приказивати обавештења без сагласности корисника. Android 8.0 (2017) је увео канале обавештења, Android 12 (2021) је додао аутоматско блокирање наметљивих обавештења, и коначно Android 13 је обавезао захтев POST_NOTIFICATIONS у време извршења. За апликације чији је targetSdkVersion испод 33, систем аутоматски одобрава дозволу, али Google Play захтева ажурирање targetSdkVersion на 33+ од августа 2023. године.

iOS: постепено јачање контроле

iOS 8 (2014) је увео обавезни захтев дозволе кроз UIUserNotificationSettings. iOS 10 (2016) је представио UNUserNotificationCenter са подршком за богата обавештења. iOS 12 (2018) је додао привремена обавештења и груписана обавештења. iOS 15 (2021) је увео Focus Mode, који може блокирати обавештења независно од дозволе апликације. App Tracking Transparency (iOS 14.5) није повезан са обавештењима, али је такође утицао на општу културу захтева за дозволе.

Тренутно стање

Тренутно обе платформе захтевају захтев Notification Permission у време извршења. Програмер више не може да се ослања на аутоматско укључивање обавештења. Корисник има потпуну контролу над тим које апликације могу да га обавештавају. Канали обавештења на Android-у и категорије обавештења на iOS-у омогућавају кориснику да прецизно подеси типове примљених обавештења.

Notification Permission на Android-у

Notification Permission на Android-у се остварује кроз дозволу POST_NOTIFICATIONS, декларисану у манифесту, са захтевом у време извршења за Android 13+.

Декларација у манифесту

За Android 13+ потребно је декларисати дозволу POST_NOTIFICATIONS у AndroidManifest.xml. За уназад компатибилност са Android 12 и нижим, дозвола се аутоматски одобрава од стране система — нису потребне додатне радње.

xml
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

Захтев у време извршења у Kotlin-у

Захтев дозволе POST_NOTIFICATIONS се извршава кроз Activity Result API. Важно је проверити верзију SDK-а: на Android 12 и нижим, захтев није потребан, дозвола се сматра аутоматски одобреном.

kotlin
private val notificationPermissionLauncher =
    registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
    if (granted) {
        createNotificationChannel()
        showPushNotification()
    } else {
        logPermissionDenied()
    }
}

fun requestNotificationAccess() {
    if (Build.version.SDK_INT <= Build.VERSION_CODES.S_V2) {
        // Android 12 и ниже — дозвола је аутоматски одобрена
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Креирање канала обавештења

На Android 8.0+, апликација мора креирати канал обавештења кроз NotificationChannel пре слања првог обавештења. Канал има важност (importance) од IMPORTANCE_NONE до IMPORTANCE_HIGH, која одређује да ли ће обавештење бити приказано са звуком и као банер. Ако је корисник искључио обавештења за апликацију, нови канали неће имати ефекта до поновног укључивања у подешавањима. Препоручује се креирање посебних канала за различите типове обавештења: поруке, рекламе, системски догађаји.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Поруке",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Обавештења о новим порукама"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

Notification Permission на iOS-у

Notification Permission на iOS-у се захтева кроз UNUserNotificationCenter. Apple препоручује двокорачни приступ: прво затражите привремена обавештења, затим, након демонстрације вредности, пуну дозволу.

Захтев у Swift-у са привременом опцијом

Привремена обавештења су тиха обавештења која стижу у Центар за обавештења без звука и банера. Она не захтевају изричиту сагласност корисника и омогућавају апликацији да покаже вредност обавештења пре пуног захтева. Након пријема неколико привремених обавештења, корисник може укључити пуна обавештења кроз мени у самом обавештењу.

swift
import UserNotifications

func requestNotificationPermission() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
        if let error = error {
            print("Notification error: \(error.localizedDescription)")
            return
        }
        if granted {
            registerForRemoteNotifications()
        } else {
            handleDeniedPermission()
        }
    }
}

func requestProvisionalOnly() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.provisional, .alert, .badge, .sound]) { granted, error in
        // Provisional — корисник не види дијалог
        // Обавештења стижу без звука у Центар за обавештења
        registerForRemoteNotifications()
    }
}

Провера статуса и системска подешавања

Тренутни статус Notification Permission на iOS-у може се добити кроз UNUserNotificationCenter.current().getNotificationSettings. Статуси .authorized, .denied, .provisional или .notDetermined омогућавају апликацији да изабере одговарајуће понашање. Након првог одбијања, системски дијалог се не приказује поново — потребно је преусмерити корисника у Подешавања кроз UIApplication.openSettingsURLString. Apple такође препоручује руковање статусом .ephemeral (iOS 17+), који обезбеђује привремена обавештења за одређене сценарије.

Најбоље праксе захтева обавештења

Најбоље праксе захтева Notification Permission имају за циљ повећање стопе конверзије сагласности и смањење одлива корисника. Неправилан захтев може не само да лиши апликацију могућности слања обавештења, већ и довести до уклањања апликације.

Не тражите при првом покретању

Најчешћи анти-образац — захтев Notification Permission при првом покретању апликације. Корисник још не разуме вредност апликације и са великом вероватноћом ће одбити. Оптимални тренутак — након што је корисник извршио прву циљану радњу: наручио, послао поруку, претплатио се на ажурирања. Захтев након вредности повећава стопу конверзије сагласности на 65-75%.

Користите екран пре дозволе

Пре системског дијалога, прикажите сопствени екран са примерима обавештења која ће корисник добијати. Прикажите макету будућег обавештења са текстом и иконом. Ако корисник види да ће обавештења бити корисна и ненаметљива, већа је вероватноћа да ће пристати. Пример обавештења на прелиминарном екрану је ефикасна техника која повећава конверзију за 35-50%.

Користите привремена обавештења на iOS-у

Проактивни захтев привремених обавештења на iOS-у омогућава достављање обавештења без изричите сагласности корисника. Ако корисник види вредност у овим обавештењима, може укључити пуна обавештења кроз контекстни мени обавештења. Apple препоручује овај приступ за вести, временске прогнозе и друге услуге где су обавештења информативна, а не трансакциона. Према Apple WWDC 2024, овај приступ повећава стопу конверзије пуне сагласности за 20-30%.

Често постављана питања

Шта радити ако је корисник одбио Notification Permission?

Након одбијања, системски дијалог се не приказује поново. Једини начин да се укључе обавештења је преусмеравање корисника у системска подешавања кроз Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) на Android-у или UIApplication.openSettingsURLString на iOS-у. Прикажите екран са упутством и дугметом за прелазак.

Како ради Notification Permission на Android 12 и нижим?

На Android 12 и нижим, Notification Permission није потребна — све апликације могу слати обавештења без захтева. Међутим, корисник може искључити обавештења у било ком тренутку кроз системска подешавања. Почевши од Android 13, захтев у време извршења је обавезан за targetSdkVersion 33+.

Шта су канали обавештења на Android-у?

NotificationChannel — категорија обавештења уведена у Android 8.0. Сваки канал има назив, опис, важност (importance) и групу. Корисник може искључити појединачне канале без искључивања свих обавештења апликације. На пример, канал „Нове поруке” и канал „Рекламни билтен” могу се подесити различито.

Могу ли се слати обавештења без Notification Permission?

На Android 13+ без POST_NOTIFICATIONS, сваки позив NotificationManager.notify ће бити игнорисан од стране система. На iOS-у без дозволе UNUserNotificationCenter, обавештења се не достављају. Изузетак: Provisional на iOS-у (без звука, само у Центру за обавештења) и Android 12- (дозвола није потребна).

Како проверити да ли су обавештења укључена за апликацију?

На Android-у користите NotificationManagerCompat.areNotificationsEnabled(). На iOS-у позовите UNUserNotificationCenter.current().getNotificationSettings и проверите својство authorizationStatus. За Android додатно проверите важност канала: NotificationChannel.getImportance() не сме бити IMPORTANCE_NONE.

Резиме

  • Notification Permission — обавезна дозвола у време извршења за слање обавештења на Android 13+ и iOS 12+.
  • Android 13 је увео POST_NOTIFICATIONS са захтевом у време извршења, за Android 12 и ниже дозвола је аутоматска.
  • iOS користи UNUserNotificationCenter са подршком за привремена обавештења за тихо достављање без сагласности.
  • Захтев након вредности — захтев након прве вредне радње корисника повећава стопу конверзије сагласности на 75%.
  • Екран пре дозволе са примером обавештења повећава конверзију за 35-50% према истраживањима у индустрији.
  • Привремена обавештења на iOS-у омогућавају демонстрацију вредности обавештења пре захтева за пуном дозволом.
  • Канали обавештења на Android-у пружају кориснику грануларну контролу над типовима примљених обавештења.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође