Posté le 16. septembre 2022 par Jan Bunk
Depuis un certain temps déjà, il fallait demander la permission aux utilisateurs d'iOS avant de pouvoir leur envoyer des notifications push. Depuis Android 13, cela s'applique également aux utilisateurs d'Android.
Par défaut, les applications créées avec webtoapp.design demandent automatiquement la permission au troisième lancement de l'application. Si vous souhaitez personnaliser ce comportement pour votre application, vous pouvez utiliser les fonctions JavaScript suivantes.
executeWhenAppReady()
notre script d'aide à l'application. Cela permet de s'assurer que votre site Web n'essaie pas d'interagir avec l'application avant qu'elle ne soit prête ou pendant le chargement de votre site Web à l'aide d'un navigateur ordinaire.
notificationPermissionsGranted
Utilisez cette fonction lorsque vous voulez vérifier si l'utilisateur a accordé des autorisations de notification push.
<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 enabled for your app
console.log(e);
}
</script>
requestNotificationPermissions
Utilisez cette fonction lorsque vous souhaitez afficher l'invite d'autorisation de la notification push.
La fonction prend un paramètre booléen qui détermine si les paramètres doivent être ouverts dans le cas où la demande de permission ordinaire a été précédemment rejetée. Voici des captures d'écran des pages de paramètres qui seraient ouvertes sur Android et iOS :
Étant donné que ce comportement pourrait être source de confusion pour les utilisateurs, vous ne devez attribuer la valeur true au paramètre que si l'utilisateur a explicitement indiqué qu'il souhaitait activer les notifications push. Si le paramètre est défini sur false, la fonction peut être un no-op dans le cas où les demandes de permission précédentes n'ont pas été accordées.
<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 enabled for your app
console.log(e);
}
</script>
Voici une liste de la documentation des développeurs sur les notifications push :