Geplaatst op 16. september 2022 door Jan Bunk
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.
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:
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>
Hier volgt een lijst met gerelateerde documentatie voor ontwikkelaars over pushmeldingen:
Dit zijn nog een paar (niet-ontwikkelaars) artikelen over pushmeldingen: