Notification Permission: cos’è, tipi di notifiche e principio di funzionamento

Autore: IT Sectr Pubblicato: 2026-05-22 Tempo di lettura: 8 min

Notification Permission è l’autorizzazione necessaria per un’app per inviare notifiche push e notifiche locali all’utente. A partire da Android 13 e iOS 12, le app sono tenute a richiedere questa autorizzazione in fase di esecuzione tramite un dialogo di sistema. Secondo Android Developers, 2024, senza il consenso esplicito dell’utente, l’app non può mostrare notifiche su dispositivi con Android 13 e versioni successive.

Punti chiave

  • Notification Permission è un’autorizzazione runtime per inviare notifiche, obbligatoria su Android 13+ e iOS 12+.
  • Android 13 ha introdotto l’autorizzazione POST_NOTIFICATIONS, che deve essere richiesta in fase di esecuzione tramite Activity Result API.
  • iOS utilizza UNUserNotificationCenter.requestAuthorization per richiedere l’accesso alle notifiche locali e push.
  • Negare l’autorizzazione impedisce all’app di mostrare sia le notifiche locali che quelle push.
  • Non è possibile richiedere nuovamente dopo il primo rifiuto — è necessario reindirizzare l’utente alle impostazioni di sistema.

Cos’è Notification Permission?

Notification Permission è un’autorizzazione di sistema che regola la capacità di un’app di inviare notifiche all’utente. Prima di Android 13, tutte le app potevano mostrare notifiche senza richiesta — bastava dichiarare l’autorizzazione nel manifest. Tuttavia, con l’aumento dello spam e delle notifiche invasive, Google ha introdotto una richiesta runtime obbligatoria, simile a iOS.

Su iOS, l’autorizzazione per le notifiche è obbligatoria da iOS 8, e a partire da iOS 12 sono apparse le notifiche provvisorie — notifiche silenziose che vengono consegnate senza suono e visualizzate nel Centro Notifiche senza una richiesta esplicita. Le notifiche provvisorie consentono allo sviluppatore di mostrare all’utente il valore delle notifiche prima di richiedere l’autorizzazione completa.

Secondo Localytics (2024), il 61% degli utenti iOS e il 55% degli utenti Android accetta di ricevere notifiche push dopo una richiesta. La conversione dell’approvazione dipende direttamente dal contesto della richiesta: le app che chiedono l’autorizzazione dopo la prima interazione di valore ottengono il 40% in più di approvazioni rispetto a quelle che la chiedono al primo avvio.

Evoluzione delle autorizzazioni di notifica

L’evoluzione delle autorizzazioni di notifica mostra come le piattaforme abbiano progressivamente limitato l’accesso delle app a questo canale di comunicazione. Comprendere questa evoluzione aiuta lo sviluppatore a gestire correttamente le diverse versioni del sistema operativo.

Android: dall’accesso libero al controllo rigoroso

Prima di Android 13 (2022), qualsiasi app poteva mostrare notifiche senza il consenso dell’utente. Android 8.0 (2017) ha introdotto i canali di notifica, Android 12 (2021) ha aggiunto il blocco automatico delle notifiche invasive e, infine, Android 13 ha reso obbligatoria la richiesta di POST_NOTIFICATIONS in fase di esecuzione. Per le app con targetSdkVersion inferiore a 33, il sistema concede automaticamente l’autorizzazione, ma Google Play richiede l’aggiornamento del targetSdkVersion a 33+ da agosto 2023.

iOS: rafforzamento progressivo del controllo

iOS 8 (2014) ha introdotto la richiesta di autorizzazione obbligatoria tramite UIUserNotificationSettings. iOS 10 (2016) ha presentato UNUserNotificationCenter con supporto per le notifiche ricche. iOS 12 (2018) ha aggiunto le notifiche provvisorie e le notifiche raggruppate. iOS 15 (2021) ha introdotto la Modalità Focus, che può bloccare le notifiche indipendentemente dall’autorizzazione dell’app. App Tracking Transparency (iOS 14.5) non è correlato alle notifiche, ma ha anche influenzato la cultura generale delle richieste di autorizzazione.

Stato attuale

Attualmente, entrambe le piattaforme richiedono una richiesta runtime di Notification Permission. Lo sviluppatore non può più fare affidamento sull’attivazione automatica delle notifiche. L’utente ha il controllo completo su quali app possono notificarlo. I canali di notifica su Android e le categorie di notifica su iOS consentono all’utente di regolare con precisione i tipi di avvisi che riceve.

Notification Permission su Android

Notification Permission su Android viene abilitata tramite l’autorizzazione POST_NOTIFICATIONS dichiarata nel manifest, seguita da una richiesta runtime per Android 13+.

Dichiarazione nel manifest

Per Android 13+, è necessario dichiarare l’autorizzazione POST_NOTIFICATIONS in AndroidManifest.xml. Per la retrocompatibilità con Android 12 e versioni precedenti, l’autorizzazione viene concessa automaticamente dal sistema — non sono richieste azioni aggiuntive.

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

Richiesta runtime in Kotlin

La richiesta dell’autorizzazione POST_NOTIFICATIONS viene effettuata tramite Activity Result API. È importante verificare la versione SDK: su Android 12 e versioni precedenti, non è necessaria alcuna richiesta — l’autorizzazione è considerata automaticamente concessa.

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 e versioni precedenti — autorizzazione concessa automaticamente
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Creazione dei canali di notifica

Su Android 8.0+, l’app deve creare un canale di notifica tramite NotificationChannel prima di inviare la prima notifica. Il canale ha un livello di importanza da IMPORTANCE_NONE a IMPORTANCE_HIGH, che determina se la notifica verrà mostrata con suono e come banner. Se l’utente ha disattivato le notifiche per l’app, i nuovi canali non avranno effetto fino alla riattivazione nelle impostazioni. Si consiglia di creare canali separati per diversi tipi di avvisi: messaggi, pubblicità, eventi di sistema.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Messaggi",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Notifiche di nuovi messaggi"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

Notification Permission su iOS

Notification Permission su iOS viene richiesta tramite UNUserNotificationCenter. Apple raccomanda un approccio in due fasi: prima richiedere le notifiche provvisorie, poi, dopo aver dimostrato il valore, richiedere l’autorizzazione completa.

Richiesta in Swift con opzione provvisoria

Le notifiche provvisorie sono notifiche silenziose che appaiono nel Centro Notifiche senza suono o banner. Non richiedono il consenso esplicito dell’utente e consentono all’app di dimostrare il valore delle notifiche prima di una richiesta completa. Dopo aver ricevuto diverse notifiche provvisorie, l’utente può attivare le notifiche complete tramite il menu all’interno della notifica stessa.

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
        // Provvisorio — l’utente non vede il dialogo
        // Le notifiche arrivano senza suono nel Centro Notifiche
        registerForRemoteNotifications()
    }
}

Verifica dello stato e impostazioni di sistema

Lo stato corrente di Notification Permission su iOS può essere ottenuto tramite UNUserNotificationCenter.current().getNotificationSettings. Lo stato .authorized, .denied, .provisional o .notDetermined consente all’app di scegliere il comportamento corretto. Dopo il primo rifiuto, il dialogo di sistema non viene più mostrato — è necessario reindirizzare l’utente alle Impostazioni tramite UIApplication.openSettingsURLString. Apple raccomanda anche di gestire lo stato .ephemeral (iOS 17+), che fornisce notifiche temporanee per scenari specifici.

Best practice per richiedere le notifiche

Le best practice per richiedere Notification Permission mirano ad aumentare il tasso di approvazione e ridurre l’abbandono degli utenti. Una richiesta errata non solo può privare l’app della capacità di inviare notifiche, ma può anche portare alla disinstallazione dell’app.

Non richiedere al primo avvio

L’anti-pattern più comune è richiedere Notification Permission al primo avvio dell’app. L’utente non ha ancora compreso il valore dell’app ed è molto probabile che rifiuti. Il momento ottimale è dopo che l’utente ha eseguito la prima azione di valore: effettuato un ordine, inviato un messaggio, si è iscritto agli aggiornamenti. Un prompt post-valore aumenta il tasso di approvazione al 65-75%.

Utilizzare una schermata di pre-autorizzazione

Prima del dialogo di sistema, mostra la tua schermata con esempi delle notifiche che l’utente riceverà. Mostra un mockup di una notifica futura con testo e icona. Se l’utente vede che le notifiche saranno utili e non invasive, sarà più propenso ad acconsentire. Un’anteprima di notifica nella schermata di pre-autorizzazione è una tecnica efficace che aumenta la conversione del 35-50%.

Utilizzare le notifiche provvisorie su iOS

Richiedere proattivamente le Notifiche Provvisorie su iOS consente di consegnare notifiche senza il consenso esplicito dell’utente. Se l’utente vede valore in queste notifiche, può attivare le notifiche complete tramite il menu contestuale della notifica. Apple raccomanda questo approccio per le app di notizie, le app meteo e altri servizi in cui le notifiche sono informative piuttosto che transazionali. Secondo Apple WWDC 2024, questo approccio aumenta il tasso di approvazione completa del 20-30%.

Domande frequenti

Cosa fare se l’utente ha negato Notification Permission?

Dopo il rifiuto, il dialogo di sistema non viene più mostrato. L’unico modo per attivare le notifiche è reindirizzare l’utente alle impostazioni di sistema tramite Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) su Android o UIApplication.openSettingsURLString su iOS. Mostra una schermata con istruzioni e un pulsante per procedere.

Come funziona Notification Permission su Android 12 e versioni precedenti?

Su Android 12 e versioni precedenti, Notification Permission non è richiesto — tutte le app possono inviare notifiche senza richiesta. Tuttavia, l’utente può disattivare le notifiche in qualsiasi momento tramite le impostazioni di sistema. A partire da Android 13, la richiesta runtime è obbligatoria per targetSdkVersion 33+.

Cosa sono i canali di notifica su Android?

NotificationChannel è una categoria di notifica introdotta in Android 8.0. Ogni canale ha un nome, una descrizione, un livello di importanza e un gruppo. L’utente può disattivare i singoli canali senza disattivare tutte le notifiche dell’app. Ad esempio, il canale “Nuovi messaggi” e il canale “Mailings promozionali” possono essere configurati diversamente.

È possibile inviare notifiche senza Notification Permission?

Su Android 13+, senza POST_NOTIFICATIONS, qualsiasi chiamata a NotificationManager.notify verrà ignorata dal sistema. Su iOS, senza l’autorizzazione UNUserNotificationCenter, le notifiche non vengono consegnate. Eccezione: Provisional su iOS (senza suono, solo nel Centro Notifiche) e Android 12- (autorizzazione non richiesta).

Come verificare se le notifiche sono attive per l’app?

Su Android, utilizzare NotificationManagerCompat.areNotificationsEnabled(). Su iOS, chiamare UNUserNotificationCenter.current().getNotificationSettings e verificare la proprietà authorizationStatus. Per Android, verificare inoltre l’importanza del canale: NotificationChannel.getImportance() non deve essere IMPORTANCE_NONE.

Riepilogo

  • Notification Permission è un’autorizzazione runtime obbligatoria per inviare notifiche su Android 13+ e iOS 12+.
  • Android 13 ha introdotto POST_NOTIFICATIONS con richiesta runtime; per Android 12 e versioni precedenti, l’autorizzazione è automatica.
  • iOS utilizza UNUserNotificationCenter con supporto per notifiche provvisorie per la consegna silenziosa senza consenso.
  • Prompt post-valore — richiedere dopo la prima azione di valore dell’utente aumenta il tasso di approvazione al 75%.
  • Schermata di pre-autorizzazione con un esempio di notifica aumenta la conversione del 35-50% secondo ricerche di settore.
  • Notifiche provvisorie su iOS consentono di dimostrare il valore delle notifiche prima di richiedere l’autorizzazione completa.
  • Canali di notifica su Android danno all’utente un controllo granulare sui tipi di notifiche ricevute.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche