Notificaciones Web con HTML5

Desde la llegada de HTML5 tenemos cada vez más control y acceso sobre los dispositivos, ya sea acceder a la cámara o incluso poder hacer vibrar un dispositivo móvil; Aunque estas características aún no son del todo soportada por navegadores, vale la pena aprenderlas a usar y saber como funcionan.

En este artículo nos enfocaremos en la API de notificación, pero para empezar ¿Qué es la API de notificación?

La API de notificación es una forma de notificar a nuestros usuarios cuando surge cierta acción o evento. Estas notificaciones pueden aparecer incluso cuando estemos en otra pestaña.

post-notificacion

Cómo usar API Notification

Empezaremos definiendo dos botones:

HTML

<button id="buttonP">Dar Permisos</button>  
<button id="buttonN">Lanzar notificación</button>

El primer botón va a dar el permiso para poder usar esta API, el segundo botón va a lanzar nuestra notificación.

Ahora definamos cuatro variables:

Javascript

var btnNotificacion = document.getElementById("buttonN"),  
    btnPermiso = document.getElementById("buttonP")
    titulo = "Fili Santillán",
    opciones = {
        icon: "logo.png",
        body: "Notificación de prueba"
    };

La variable btnNotificacion representa a nuestro botón 1.

La variable btnPermiso representa a nuestro botón 2.

La variable titulo representa el título de nuestra Notificación.

La variable opciones representa la imagen y cuerpo de nuestra notificación.

Ahora que ya tenemos nuestras variables, vamos a crear una función:

Javascript

function permiso() {  
   Notification.requestPermission();
};
Esta función va a pedir permiso para mostrar las notificaciones.

En cuanto a los permisos, tenemos tres resultados:

  • default: Cuando el usuario aún no establece el permiso.
  • granted: Cuando el usuario concede el permiso.
  • denied: Cuando el usuario bloquea el permiso.

Ahora vamos a definir una segunda función:

Javascript

function mostrarNotificacion() {  
   if(Notification) {

      if (Notification.permission == "granted"){
         var n = new Notification(titulo, opciones);
      }

      else if(Notification.permission == "default") {
         alert("Primero da los permisos de notificación");
      }

      else {
         alert("Bloqueaste los permisos de notificación");
      }
    }
};

Con if(Notification) verificamos si el navegador es compatible, si es así, va a ejecutar lo que hay dentro.

En caso de que el usuario concedió el permiso if(Notification.permission == "granted"), vamos a crear una variable con el nombre n que va a hacer nuestra notificación, recibiendo los parámetros de titulo y opciones.

En caso de que el usuario no ha establecido el permiso else if(Notification.permission == "default"), vamos a lanzar un alert para notificarle.

En caso de que el usuario bloquee el permiso else, vamos a lanzar un alert para notificarle.

Para terminar, solo falta agregar dos eventos a nuestros botones:

Javascript

btnPermiso.addEventListener("click", permiso);  
btnNotificacion.addEventListener("click", mostrarNotificacion);

Para cerrar nuestra notificación podemos usar:

n.close();
n es la variable que definimos anteriormente.

Nuestro código JavaScript completo se debe ver de la siguiente manera:

Código completo

var btnNotificacion = document.getElementById("buttonN"),  
    btnPermiso = document.getElementById("buttonP")
    titulo = "Fili Santillán",
    opciones = {
        icon: "logo.png",
        body: "Notificación de prueba"
    };

function permiso() {  
        Notification.requestPermission();
};

function mostrarNotificacion() {  
    if(Notification) {
        if (Notification.permission == "granted") {
            var n = new Notification(titulo, opciones);
        }

        else if(Notification.permission == "default") {
            alert("Primero da los permisos de notificación");
        }

        else {
            alert("Bloqueaste los permisos de notificación");
        }
    }
};

btnPermiso.addEventListener("click", permiso);  
btnNotificacion.addEventListener("click", mostrarNotificacion);

La API de notificaciones como puedes ver es bastante fácil de usar y muy buena a la hora de crear aplicaciones, estoy seguro de que ahora mismo ya se te ocurrieron diferentes formas de usarla, pero esto no es todo, con esta API incluso puedes usar sonidos, hacer vibrar un dispositivo y mucho más...

Si quieres profundizar con esta API te recomiendo ver su documentación en Mozilla Developer Network.

Se parte de mi newsletter

Compartiré contigo las últimas novedades del sitio y otros recursos sobre desarrollo web que no te puedes perder.