Notification Permission: ce este, tipuri de notificări și principiul de funcționare

Autor: IT Sectr Publicat: 2026-05-22 Timp de citire: 8 min

Notification Permission — aceasta este permisiunea de care aplicația are nevoie pentru a trimite notificări push și notificări locale utilizatorului. Începând cu Android 13 și iOS 12, aplicațiile sunt obligate să solicite această permisiune în timpul execuției printr-un dialog de sistem. Potrivit Android Developers, 2024, fără consimțământul explicit al utilizatorului, aplicația nu poate afișa notificări pe dispozitivele cu Android 13 și mai noi.

Cele mai importante

  • Notification Permission — permisiune de timp de execuție pentru trimiterea notificărilor, obligatorie pe Android 13+ și iOS 12+.
  • Android 13 a introdus permisiunea POST_NOTIFICATIONS, care trebuie solicitată în timpul execuției prin Activity Result API.
  • iOS utilizează UNUserNotificationCenter.requestAuthorization pentru a solicita accesul la notificări locale și push.
  • Refuzul permisiunii duce la imposibilitatea aplicației de a afișa atât notificări locale, cât și notificări push.
  • Solicitarea repetată nu este posibilă după primul refuz — trebuie să redirecționați utilizatorul către setările de sistem.

Ce este Notification Permission?

Notification Permission — aceasta este o permisiune de sistem care reglementează capacitatea aplicației de a trimite notificări utilizatorului. Până la Android 13, toate aplicațiile puteau afișa notificări fără solicitare — era suficient să declare permisiunea în manifest. Însă odată cu creșterea spamului și a notificărilor intruzive, Google a introdus solicitarea obligatorie în timpul execuției, similar cu iOS.

Pe iOS, permisiunea de notificare era obligatorie încă de la iOS 8, iar începând cu iOS 12 au apărut notificările provizorii (provisional) — notificări silențioase care sunt livrate fără sunet și afișate în Centrul de Notificări fără o solicitare explicită. Notificările provizorii permit dezvoltatorului să arate utilizatorului valoarea notificărilor înainte de a solicita permisiunea completă.

Potrivit Localytics (2024), 61% dintre utilizatorii iOS și 55% dintre utilizatorii Android acceptă primirea notificărilor push după solicitare. Rata de conversie a consimțământului depinde direct de contextul solicitării: aplicațiile care solicită permisiunea după prima interacțiune valoroasă obțin cu 40% mai multe acceptări decât cele care solicită la prima lansare.

Evoluția permisiunilor de notificare

Evoluția permisiunilor de notificare arată cum platformele au limitat treptat accesul aplicațiilor la acest canal de comunicare. Înțelegerea acestei evoluții îi ajută pe dezvoltatori să gestioneze corect diferitele versiuni de sistem de operare.

Android: de la acces liber la control strict

Până la Android 13 (2022), orice aplicație putea afișa notificări fără consimțământul utilizatorului. Android 8.0 (2017) a introdus canalele de notificare, Android 12 (2021) a adăugat blocarea automată a notificărilor intruzive, iar în final Android 13 a impus solicitarea POST_NOTIFICATIONS în timpul execuției. Pentru aplicațiile cu targetSdkVersion sub 33, sistemul acordă automat permisiunea, dar Google Play solicită actualizarea targetSdkVersion la 33+ începând cu august 2023.

iOS: întărirea treptată a controlului

iOS 8 (2014) a introdus solicitarea obligatorie a permisiunii prin UIUserNotificationSettings. iOS 10 (2016) a prezentat UNUserNotificationCenter cu suport pentru notificări bogate. iOS 12 (2018) a adăugat notificările provizorii și notificările grupate. iOS 15 (2021) a introdus Focus Mode, care poate bloca notificările independent de permisiunea aplicației. App Tracking Transparency (iOS 14.5) nu este legat de notificări, dar a influențat cultura generală a solicitărilor de permisiuni.

Starea actuală

În prezent, ambele platforme necesită solicitarea Notification Permission în timpul execuției. Dezvoltatorul nu se mai poate baza pe activarea automată a notificărilor. Utilizatorul are control total asupra aplicațiilor care îl pot notifica. Canalele de notificare pe Android și categoriile de notificări pe iOS permit utilizatorului să ajusteze fin tipurile de notificări primite.

Notification Permission pe Android

Notification Permission pe Android se realizează prin permisiunea POST_NOTIFICATIONS, declarată în manifest, cu solicitare în timpul execuției pentru Android 13+.

Declararea în manifest

Pentru Android 13+ trebuie să declarați permisiunea POST_NOTIFICATIONS în AndroidManifest.xml. Pentru compatibilitatea inversă cu Android 12 și versiuni anterioare, permisiunea este acordată automat de sistem — nu sunt necesare acțiuni suplimentare.

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

Solicitarea în timpul execuției în Kotlin

Solicitarea permisiunii POST_NOTIFICATIONS se efectuează prin Activity Result API. Este important să verificați versiunea SDK: pe Android 12 și versiuni anterioare, solicitarea nu este necesară, permisiunea fiind considerată acordată automat.

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 și mai jos — permisiune acordată automat
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Crearea canalelor de notificare

Pe Android 8.0+, aplicația trebuie să creeze un canal de notificare prin NotificationChannel înainte de a trimite prima notificare. Canalul are o importanță (importance) de la IMPORTANCE_NONE la IMPORTANCE_HIGH, care determină dacă notificarea va fi afișată cu sunet și sub formă de banner. Dacă utilizatorul a dezactivat notificările pentru aplicație, canalele noi nu vor avea efect până la reactivarea în setări. Se recomandă crearea de canale separate pentru diferite tipuri de notificări: mesaje, reclame, evenimente de sistem.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Mesaje",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Notificări despre mesaje noi"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

Notification Permission pe iOS

Notification Permission pe iOS se solicită prin UNUserNotificationCenter. Apple recomandă o abordare în două etape: mai întâi solicitați notificări provizorii, apoi, după demonstrarea valorii, permisiunea completă.

Solicitarea în Swift cu opțiunea provizorie

Notificările provizorii sunt notificări silențioase care ajung în Centrul de Notificări fără sunet și banner. Acestea nu necesită consimțământul explicit al utilizatorului și permit aplicației să demonstreze valoarea notificărilor înainte de solicitarea completă. După primirea mai multor notificări provizorii, utilizatorul poate activa notificările complete prin meniul din notificarea însăși.

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 — utilizatorul nu vede dialogul
        // Notificările vin fără sunet în Centrul de Notificări
        registerForRemoteNotifications()
    }
}

Verificarea statusului și setările de sistem

Statusul curent al Notification Permission pe iOS poate fi obținut prin UNUserNotificationCenter.current().getNotificationSettings. Statusurile .authorized, .denied, .provisional sau .notDetermined permit aplicației să aleagă comportamentul corect. După primul refuz, dialogul de sistem nu se mai afișează — trebuie să redirecționați utilizatorul către Setări prin UIApplication.openSettingsURLString. Apple recomandă, de asemenea, gestionarea statusului .ephemeral (iOS 17+), care oferă notificări temporare pentru anumite scenarii.

Cele mai bune practici de solicitare a notificărilor

Cele mai bune practici de solicitare a Notification Permission au ca scop creșterea ratei de conversie a consimțământului și reducerea pierderii de utilizatori. O solicitare incorectă poate nu doar să priveze aplicația de posibilitatea de a trimite notificări, ci și să ducă la dezinstalarea aplicației.

Nu solicitați la prima lansare

Cel mai frecvent anti-pattern — solicitarea Notification Permission la prima lansare a aplicației. Utilizatorul încă nu înțelege valoarea aplicației și va refuza cu o probabilitate mare. Momentul optim — după ce utilizatorul a efectuat prima acțiune țintă: a plasat o comandă, a trimis un mesaj, s-a abonat la actualizări. Solicitarea post-valoare crește rata de conversie a consimțământului la 65-75%.

Folosiți un ecran de pre-permisiune

Înainte de dialogul de sistem, afișați propriul ecran cu exemple de notificări pe care utilizatorul le va primi. Afișați o machetă a viitoarei notificări cu text și pictogramă. Dacă utilizatorul vede că notificările vor fi utile și neintruzive, va fi mai probabil să accepte. Exemplul de notificare pe ecranul preliminar este o tehnică eficientă care crește conversia cu 35-50%.

Folosiți notificări provizorii pe iOS

Solicitarea proactivă a notificărilor provizorii pe iOS permite livrarea notificărilor fără consimțământul explicit al utilizatorului. Dacă utilizatorul vede valoare în aceste notificări, poate activa notificările complete prin meniul contextual al notificării. Apple recomandă această abordare pentru aplicații de știri, vreme și alte servicii unde notificările sunt informaționale, nu tranzacționale. Potrivit Apple WWDC 2024, această abordare crește rata de conversie a acceptării complete cu 20-30%.

Întrebări frecvente

Ce fac dacă utilizatorul a refuzat Notification Permission?

După refuz, dialogul de sistem nu se mai afișează. Singura modalitate de a activa notificările este să redirecționați utilizatorul către setările de sistem prin Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) pe Android sau UIApplication.openSettingsURLString pe iOS. Afișați un ecran cu instrucțiuni și un buton de navigare.

Cum funcționează Notification Permission pe Android 12 și versiuni anterioare?

Pe Android 12 și versiuni anterioare, Notification Permission nu este necesară — toate aplicațiile pot trimite notificări fără solicitare. Cu toate acestea, utilizatorul poate dezactiva notificările în orice moment prin setările de sistem. Începând cu Android 13, solicitarea în timpul execuției este obligatorie pentru targetSdkVersion 33+.

Ce sunt canalele de notificare pe Android?

NotificationChannel — este o categorie de notificări introdusă în Android 8.0. Fiecare canal are un nume, o descriere, o importanță (importance) și un grup. Utilizatorul poate dezactiva canale individuale fără a dezactiva toate notificările aplicației. De exemplu, canalul „Mesaje noi” și canalul „Newsletter publicitar” pot fi configurate diferit.

Pot trimite notificări fără Notification Permission?

Pe Android 13+, fără POST_NOTIFICATIONS, orice apel NotificationManager.notify va fi ignorat de sistem. Pe iOS, fără permisiunea UNUserNotificationCenter, notificările nu sunt livrate. Excepție: Provisional pe iOS (fără sunet, doar în Centrul de Notificări) și Android 12- (permisiunea nu este necesară).

Cum verific dacă notificările sunt activate pentru aplicație?

Pe Android, utilizați NotificationManagerCompat.areNotificationsEnabled(). Pe iOS, apelați UNUserNotificationCenter.current().getNotificationSettings și verificați proprietatea authorizationStatus. Pentru Android, verificați suplimentar importanța canalului: NotificationChannel.getImportance() nu trebuie să fie IMPORTANCE_NONE.

Rezumat

  • Notification Permission — permisiune obligatorie de timp de execuție pentru trimiterea notificărilor pe Android 13+ și iOS 12+.
  • Android 13 a introdus POST_NOTIFICATIONS cu solicitare în timpul execuției, pentru Android 12 și versiuni anterioare permisiunea este automată.
  • iOS utilizează UNUserNotificationCenter cu suport pentru notificări provizorii pentru livrare silențioasă fără consimțământ.
  • Solicitarea post-valoare — solicitarea după prima acțiune valoroasă a utilizatorului crește rata de conversie a consimțământului la 75%.
  • Ecranul de pre-permisiune cu un exemplu de notificare crește conversia cu 35-50% conform studiilor din domeniu.
  • Notificările provizorii pe iOS permit demonstrarea valorii notificărilor înainte de solicitarea permisiunii complete.
  • Canalele de notificare pe Android oferă utilizatorului control granular asupra tipurilor de notificări primite.

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și