Notification Permission: wat is het, meldingstypen en werkingsprincipe

Auteur: IT Sectr Gepubliceerd: 2026-05-22 Leestijd: 8 min

Notification Permission — dit is de machtiging die een app nodig heeft om pushmeldingen en lokale meldingen naar de gebruiker te sturen. Vanaf Android 13 en iOS 12 zijn apps verplicht om deze machtiging tijdens runtime aan te vragen via een systeemdialoog. Volgens Android Developers, 2024 kan een app zonder expliciete toestemming van de gebruiker geen meldingen tonen op apparaten met Android 13 en hoger.

Belangrijkste punten

  • Notification Permission — runtime-machtiging voor het verzenden van meldingen, verplicht op Android 13+ en iOS 12+.
  • Android 13 introduceerde de machtiging POST_NOTIFICATIONS, die tijdens runtime via de Activity Result API moet worden aangevraagd.
  • iOS gebruikt UNUserNotificationCenter.requestAuthorization om toegang tot lokale en pushmeldingen aan te vragen.
  • Weigering van de machtiging leidt ertoe dat de app geen lokale of pushmeldingen kan tonen.
  • Een nieuwe aanvraag is niet mogelijk na de eerste weigering — u moet de gebruiker doorverwijzen naar de systeeminstellingen.

Wat is Notification Permission?

Notification Permission — dit is een systeemmachtiging die het vermogen van de app om meldingen naar de gebruiker te sturen regelt. Tot Android 13 konden alle apps meldingen tonen zonder aanvraag — het was voldoende om de machtiging in het manifest te declareren. Maar met de toename van spam en opdringerige meldingen voerde Google een verplichte runtime-aanvraag in, vergelijkbaar met iOS.

Op iOS was de meldingstoestemming verplicht vanaf iOS 8, en vanaf iOS 12 verschenen provisionele (provisional) meldingen — stille meldingen die zonder geluid worden afgeleverd en weergegeven in het Berichtencentrum zonder expliciete aanvraag. Provisionele meldingen stellen de ontwikkelaar in staat om de gebruiker de waarde van meldingen te laten zien voordat hij volledige toestemming vraagt.

Volgens Localytics (2024) gaat 61% van de iOS-gebruikers en 55% van de Android-gebruikers akkoord met het ontvangen van pushmeldingen na een aanvraag. Het conversiepercentage van toestemming hangt direct af van de context van de aanvraag: apps die toestemming vragen na de eerste waardevolle interactie krijgen 40% meer toestemmingen dan apps die bij de eerste keer opstarten vragen.

Evolutie van meldingstoestemmingen

Evolutie van meldingstoestemmingen laat zien hoe platforms geleidelijk de toegang van apps tot dit communicatiekanaal hebben beperkt. Inzicht in deze evolutie helpt de ontwikkelaar om verschillende versies van het besturingssysteem correct te behandelen.

Android: van vrije toegang tot strikte controle

Tot Android 13 (2022) kon elke app meldingen tonen zonder toestemming van de gebruiker. Android 8.0 (2017) introduceerde meldingskanalen, Android 12 (2021) voegde automatische blokkering van opdringerige meldingen toe, en uiteindelijk maakte Android 13 het verplicht om POST_NOTIFICATIONS tijdens runtime aan te vragen. Voor apps met een targetSdkVersion lager dan 33 verleent het systeem automatisch toestemming, maar Google Play vereist sinds augustus 2023 een update van targetSdkVersion naar 33+.

iOS: geleidelijke versterking van controle

iOS 8 (2014) introduceerde de verplichte toestemmingsaanvraag via UIUserNotificationSettings. iOS 10 (2016) introduceerde UNUserNotificationCenter met ondersteuning voor rijke meldingen. iOS 12 (2018) voegde provisionele meldingen en gegroepeerde meldingen toe. iOS 15 (2021) introduceerde Focus Mode, die meldingen kan blokkeren ongeacht de app-machtiging. App Tracking Transparency (iOS 14.5) is niet gerelateerd aan meldingen, maar heeft ook de algemene cultuur van toestemmingsaanvragen beïnvloed.

Huidige status

Momenteel vereisen beide platforms een runtime-aanvraag van Notification Permission. De ontwikkelaar kan niet langer vertrouwen op automatische inschakeling van meldingen. De gebruiker heeft volledige controle over welke apps hem kunnen notificeren. Meldingskanalen op Android en meldingscategorieën op iOS stellen de gebruiker in staat om de typen ontvangen meldingen nauwkeurig af te stemmen.

Notification Permission op Android

Notification Permission op Android wordt gerealiseerd via de machtiging POST_NOTIFICATIONS, gedeclareerd in het manifest, met een runtime-aanvraag voor Android 13+.

Declaratie in het manifest

Voor Android 13+ moet u de machtiging POST_NOTIFICATIONS declareren in AndroidManifest.xml. Voor achterwaartse compatibiliteit met Android 12 en lager wordt de machtiging automatisch door het systeem verleend — er zijn geen aanvullende acties nodig.

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

Runtime-aanvraag in Kotlin

De aanvraag van de machtiging POST_NOTIFICATIONS wordt uitgevoerd via de Activity Result API. Het is belangrijk om de SDK-versie te controleren: op Android 12 en lager is geen aanvraag nodig, de machtiging wordt als automatisch verleend beschouwd.

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 en lager — machtiging automatisch verleend
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Aanmaken van meldingskanalen

Op Android 8.0+ moet de app een meldingskanaal aanmaken via NotificationChannel voordat de eerste melding wordt verzonden. Het kanaal heeft een belangrijkheid (importance) van IMPORTANCE_NONE tot IMPORTANCE_HIGH, die bepaalt of de melding met geluid en als banner wordt weergegeven. Als de gebruiker meldingen voor de app heeft uitgeschakeld, hebben nieuwe kanalen geen effect tot ze opnieuw worden ingeschakeld in de instellingen. Het wordt aanbevolen om aparte kanalen aan te maken voor verschillende soorten meldingen: berichten, advertenties, systeemgebeurtenissen.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Berichten",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Meldingen over nieuwe berichten"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

Notification Permission op iOS

Notification Permission op iOS wordt aangevraagd via UNUserNotificationCenter. Apple beveelt een tweestapsbenadering aan: vraag eerst provisionele meldingen aan en daarna, na het tonen van de waarde, volledige toestemming.

Aanvraag in Swift met provisionele optie

Provisionele meldingen zijn stille meldingen die in het Berichtencentrum terechtkomen zonder geluid of banner. Ze vereisen geen expliciete toestemming van de gebruiker en stellen de app in staat om de waarde van meldingen te tonen voordat volledige toestemming wordt gevraagd. Na het ontvangen van enkele provisionele meldingen kan de gebruiker volledige meldingen inschakelen via het menu in de melding zelf.

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 — gebruiker ziet de dialoog niet
        // Meldingen komen zonder geluid in het Meldingencentrum
        registerForRemoteNotifications()
    }
}

Statuscontrole en systeeminstellingen

De huidige status van Notification Permission op iOS kan worden verkregen via UNUserNotificationCenter.current().getNotificationSettings. De statussen .authorized, .denied, .provisional of .notDetermined stellen de app in staat om het juiste gedrag te kiezen. Na de eerste weigering wordt de systeemdialoog niet opnieuw getoond — u moet de gebruiker doorverwijzen naar Instellingen via UIApplication.openSettingsURLString. Apple raadt ook aan om de status .ephemeral (iOS 17+) te behandelen, die tijdelijke meldingen biedt voor bepaalde scenario’s.

Beste praktijken voor het aanvragen van meldingen

Beste praktijken voor het aanvragen van Notification Permission zijn gericht op het verhogen van het conversiepercentage van toestemming en het verminderen van gebruikersverloop. Een onjuiste aanvraag kan de app niet alleen het vermogen ontnemen om meldingen te sturen, maar ook leiden tot verwijdering van de app.

Vraag niet bij de eerste keer opstarten

Het meest voorkomende antipatroon — het aanvragen van Notification Permission bij de eerste keer opstarten van de app. De gebruiker begrijpt de waarde van de app nog niet en zal met grote waarschijnlijkheid weigeren. Het optimale moment — nadat de gebruiker de eerste doelactie heeft uitgevoerd: een bestelling geplaatst, een bericht verzonden, geabonneerd op updates. Post-value prompt verhoogt het conversiepercentage van toestemming tot 65-75%.

Gebruik een pre-permissiescherm

Toon voor de systeemdialoog een eigen scherm met voorbeelden van meldingen die de gebruiker zal ontvangen. Toon een mock-up van de toekomstige melding met tekst en pictogram. Als de gebruiker ziet dat meldingen nuttig en niet-opdringerig zullen zijn, is de kans groter dat hij akkoord gaat. Een voorbeeldmelding op het voorlopige scherm is een effectieve techniek die de conversie met 35-50% verhoogt.

Gebruik provisionele meldingen op iOS

Het proactief aanvragen van provisionele meldingen op iOS maakt het mogelijk om meldingen te bezorgen zonder expliciete toestemming van de gebruiker. Als de gebruiker waarde ziet in deze meldingen, kan hij volledige meldingen inschakelen via het contextmenu van de melding. Apple beveelt deze benadering aan voor nieuwsapps, weerapps en andere diensten waar meldingen informatief zijn in plaats van transactioneel. Volgens Apple WWDC 2024 verhoogt deze benadering het conversiepercentage van volledige toestemming met 20-30%.

Veelgestelde vragen

Wat moet ik doen als de gebruiker Notification Permission heeft geweigerd?

Na weigering wordt de systeemdialoog niet opnieuw getoond. De enige manier om meldingen in te schakelen is door de gebruiker door te verwijzen naar de systeeminstellingen via Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) op Android of UIApplication.openSettingsURLString op iOS. Toon een scherm met instructies en een knop om te navigeren.

Hoe werkt Notification Permission op Android 12 en lager?

Op Android 12 en lager is Notification Permission niet vereist — alle apps kunnen meldingen sturen zonder aanvraag. De gebruiker kan meldingen echter op elk moment uitschakelen via de systeeminstellingen. Vanaf Android 13 is een runtime-aanvraag verplicht voor targetSdkVersion 33+.

Wat zijn meldingskanalen op Android?

NotificationChannel — is een meldingscategorie die is geïntroduceerd in Android 8.0. Elk kanaal heeft een naam, beschrijving, belangrijkheid (importance) en een groep. De gebruiker kan afzonderlijke kanalen uitschakelen zonder alle meldingen van de app uit te schakelen. Zo kunnen het kanaal „Nieuwe berichten” en het kanaal „Reclamenieuwsbrief” verschillend worden geconfigureerd.

Kan ik meldingen sturen zonder Notification Permission?

Op Android 13+ zonder POST_NOTIFICATIONS wordt elke aanroep van NotificationManager.notify door het systeem genegeerd. Op iOS worden meldingen zonder UNUserNotificationCenter-toestemming niet bezorgd. Uitzondering: Provisional op iOS (zonder geluid, alleen in het Berichtencentrum) en Android 12- (geen toestemming vereist).

Hoe controleer ik of meldingen zijn ingeschakeld voor de app?

Gebruik op Android NotificationManagerCompat.areNotificationsEnabled(). Roep op iOS UNUserNotificationCenter.current().getNotificationSettings aan en controleer de eigenschap authorizationStatus. Controleer voor Android ook het belang van het kanaal: NotificationChannel.getImportance() mag niet IMPORTANCE_NONE zijn.

Samenvatting

  • Notification Permission — verplichte runtime-machtiging voor het verzenden van meldingen op Android 13+ en iOS 12+.
  • Android 13 introduceerde POST_NOTIFICATIONS met runtime-aanvraag, voor Android 12 en lager is de machtiging automatisch.
  • iOS gebruikt UNUserNotificationCenter met ondersteuning voor provisionele meldingen voor stille bezorging zonder toestemming.
  • Post-value prompt — aanvraag na de eerste waardevolle actie van de gebruiker verhoogt het conversiepercentage van toestemming tot 75%.
  • Pre-permissiescherm met een voorbeeldmelding verhoogt de conversie met 35-50% volgens brancheonderzoek.
  • Provisionele meldingen op iOS stellen in staat om de waarde van meldingen te tonen voordat volledige toestemming wordt gevraagd.
  • Meldingskanalen op Android geven de gebruiker granulair controle over de typen ontvangen meldingen.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook