Publicado en 16. septiembre 2022 por Jan Bunk
Durante bastante tiempo, había que pedir permiso a los usuarios de iOS para poder enviarles notificaciones push. Desde Android 13, esto también se aplica a los usuarios de Android.
Por defecto, las aplicaciones creadas con webtoapp.design piden automáticamente permiso al tercer lanzamiento de la aplicación. Si quieres personalizar este comportamiento para tu aplicación, puedes utilizar las siguientes funciones de JavaScript.
executeWhenAppReady()
de
nuestro script de ayuda a la aplicación. Asegura que tu sitio web no intente interactuar con la aplicación antes de que esté lista o cuando tu sitio web se cargue utilizando un navegador normal.
notificationPermissionsGranted
Utiliza esta función cuando quieras comprobar si el usuario ha concedido permisos de notificaciones 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
Utiliza esta función cuando quieras mostrar el aviso de permiso de las notificaciones push.
La función toma un parámetro booleano que determina si los ajustes deben abrirse en caso de que la solicitud de permiso regular haya sido rechazada previamente. Aquí hay capturas de pantalla de las páginas de configuración que se abrirían en Android y en iOS:
Dado que este comportamiento puede resultar confuso para los usuarios, sólo debes establecer el parámetro como verdadero si el usuario ha indicado explícitamente que quiere activar las notificaciones push. Si el parámetro se establece como falso, la función puede ser un no-op en caso de que no se concedan las solicitudes de permiso anteriores.
<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>
Aquí tienes una lista de documentación para desarrolladores relacionada con las notificaciones push: