Blog de Gonzalo

COMO MOSTRAR NOTIFICACIONES CON JAVASCRIPT

Las notificaciones es una de las novedades de HTML5 y en las últimas versiones de los navegadores, por lo que ya se pueden usar sin que haya modificaciones en el futuro. Las notificaciones nos permiten mostrar un cuadro emergente con un texto y una imagen que aparecerá encima de todas las ventanas, aunque no estemos mirando el navegador. Cada navegador gestiona las notificaciones a su manera, Chrome muestra tres bloques y Firefox todos los que entren en la pantalla, por eso no hay que de abusar de las notificaciones. Es recomendable cerrar la propia notificación cuando pase un tiempo para no molestar al usuario, aunque se puede eliminar al pulsarla o al dar a cerrar.
En este post os voy a explicar como mostrar notificaciones con javascript:

  • Primero se pedirá permiso para aceptar las modificaciones:
    
      let permission = Notification.permission;
    
  • Después se gestiona las notificaciones con lo seleccionado por el usuario:
    
           if(permission === "granted"){
             mostrarNotificacion();
          } else if(permission === "default"){
             pedirPermisoNotificaciones();
          } else {
            alert("Use normal alert");
          }
    
  • Si el usuario permite las notifaciones se configura el mensaje de la notificación:
    
    let title = 'Título de la notificación';
    let icon = 'Ruta al icono que mostrar, como logo de la web o lo que sea';
    let body = 'Mensaje de la notifiación';
    var notification = new Notification(title, { body, icon });
    
Otro ejemplo más completo:

    if (Notification) {
        if (Notification.permission !== "granted") {
            Notification.requestPermission()
        }
        let title = 'Título de la notificación';
        var extra = {
           let icon = 'Ruta al icono que mostrar, como logo de la web';
           let body = 'Mensaje de la notifiación';
        }
        var noti = new Notification( title, extra)
        noti.onclick = {
            // Al hacer click
        }
        noti.onclose = {
            // Al cerrar
        }
        setTimeout( function() { noti.close() }, 10000)
    }
Estas notificaciones da muchas posibilidades a la hora de crear aplicaciones web, por lo que probablemente a muchos les sea de ayuda para crear proyectos que hagan uso de AJAX o WebSockets o usando EventSource para comunicarse con un servidor y poder notificar de cambios en tiempo real.
NOTA:
En firefox no sale la notificación por defecto. Para verla hay que ir a la barra de direcciones y pulsar sobre el bocadillo de diálogo antes de la url. Para que salga la notificación tiene que haber interacción con la página como un botón.

Compartir en twitter