Notification.permission

Nota: Esta característica está disponible en Web Workers.

Contexto seguro: Esta función está disponible solo en contextos seguros (HTTPS), en algunos o todos los navegadores que lo soportan.

La propiedad de solo lectura permission de la interfaz Notification indica el permiso concedido por el usuario al origen actual para mostrar notificaciones web.

Sintaxis

js
var permission = Notification.permission;

Valor

Una DOMString representa el permiso actual. El valor puede ser:

  • granted: El usuario ha concedido el permiso explicitamente al origen actual para mostrar notificaciones del sistema.
  • denied: El usuario ha denegado el permiso explicitamente al origen actual para mostrar notificaciones del sistema.
  • default: La decisión del usuario es deconocida; en este caso la aplicación actuará como si el permiso fuese denied

Ejemplos

El siguiente código podría ser usado si quisieras primero comprobar si las notificaciones son soportadas, luego comprobar si los permisos han sido concedidos al origen actual para enviar notificaciones, y luego solicitar permiso de ser requerido, antes de enviar una notificación.

js
function notifyMe() {
  // Comprobamos si el navegador soporta las notificaciones
  if (!("Notification" in window)) {
    console.log(
      "Este navegador no es compatible con las notificaciones de escritorio",
    );
  }

  // Comprobamos si los permisos han sido concedidos anteriormente
  else if (Notification.permission === "granted") {
    // Si es correcto, lanzamos una notificación
    var notification = new Notification("Hola!");
  }

  // Si no, pedimos permiso para la notificación
  else if (
    Notification.permission !== "denied" ||
    Notification.permission === "default"
  ) {
    Notification.requestPermission(function (permission) {
      // Si el usuario nos lo concede, creamos la notificación
      if (permission === "granted") {
        var notification = new Notification("Hola!");
      }
    });
  }

  // Por último, si el usuario ha denegado el permiso, y quieres ser respetuoso, no hay necesidad de molestarlo.
}

Especificaciones

Specification
Notifications API Standard
# dom-notification-permission

Compatibilidad con Navegadores

BCD tables only load in the browser

Véase también