Hoe werkt het: weergeven van de promt voor toestemmingen van pushmeldingen

Geplaatst op 16. september 2022 door Jan Bunk


Voor de functies die op deze pagina worden beschreven is een abonnement met pushmeldingen vereist.

Al geruime tijd moesten iOS-gebruikers om toestemming worden gevraagd voordat je ze pushmeldingen kon sturen. Sinds Android 13 geldt dit ook voor Android-gebruikers.

Standaard vragen apps gemaakt met webtoapp.design automatisch om toestemming bij de derde lancering van de app. Als je dit gedrag voor je app wilt aanpassen, kun je de volgende JavaScript-functies gebruiken.

De JavaScript-functies gebruiken

Je zou eens kunnen kijken naar de executeWhenAppReady() functie van ons app-helper script. Het zorgt ervoor dat je website niet probeert te communiceren met de app voordat deze klaar is of wanneer je website wordt geladen met een gewone browser (ReferenceError, functie is niet gedefinieerd).

notificationPermissionsGranted

Gebruik deze functie als je wilt controleren of de gebruiker machtigingen voor pushmeldingen heeft verleend.


<script>
    try {
        // returns true or false
        let granted = (await notificationPermissionsGranted())["granted"];
    }
    catch (e) {
        // Can occur if:
        // - the app couldn't connect to the native code. Should be very unlikely.
        // - the app couldn't get the push notification permission status. Should be very unlikely.
        // - push notifications are not included in your current plan
        console.log(e);
    }
</script>
    

requestNotificationPermissions

Gebruik deze functie als je de toestemmingsprompt voor pushmeldingen wilt weergeven.

De functie neemt één booleaanse parameter die bepaalt of de instellingen moeten worden geopend als de gewone machtigingsprompt eerder werd afgewezen. Hier volgen screenshots van de instellingenpagina's die geopend zouden worden op Android en iOS:

Het infoscherm van de Android-app waar meldingen handmatig kunnen worden ingeschakeld.
Het infoscherm van de Android-app waar meldingen handmatig kunnen worden ingeschakeld.
Een screenshot van de instellingen voor iOS-meldingen.
Een screenshot van de instellingen voor iOS-meldingen.

Omdat dit gedrag verwarrend kan zijn voor gebruikers, moet je de parameter alleen op true zetten als de gebruiker expliciet heeft aangegeven pushmeldingen te willen inschakelen. Als de parameter wordt ingesteld op false, kan de functie een no-op zijn in het geval eerdere verzoeken om toestemming niet werden ingewilligd.


<script>
    try {
        let openSettingsIfNecessary = false;

        // doesn't return anything
        await requestNotificationPermissions(openSettingsIfNecessary);
    }
    catch (e) {
        // Can occur if:
        // - the app couldn't connect to the native code. Should be very unlikely.
        // - the app couldn't ask for push notification permissions. Should be very unlikely.
        // - push notifications are not included in your current plan
        console.log(e);
    }
</script>