Guías de Make it Real
  • Introduction
  • Preparación
    • Conceptos básicos
    • El editor de texto
    • La línea de comandos
    • Git y Github
  • Git
    • Instalación y configuración
    • Conceptos y comandos esenciales
    • Ignorando archivos y carpetas
    • Trabajando con ramas
    • Repositorios remotos
    • Etiquetas
    • Reescribiendo la historia
    • Stashing
    • Github
  • HTML y CSS
    • Introducción a HTML
    • Introducción a CSS
    • Más elementos de HTML
    • Tablas
    • Formularios
    • El modelo de caja en CSS
    • Fondos (backgrounds)
    • Posicionamiento
    • Selectores CSS
    • Bordes, sombras y gradientes
    • Media Queries
    • Unidades en CSS
    • Flexbox
  • Bootstrap 3
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Personalizando Bootstrap
    • Utilizando plantillas
  • Bootstrap 4
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Clases utilitarias
    • Personalizando Bootstrap
  • Ruby
    • Primeros pasos
    • Tipos y operadores
    • Variables y entrada de usuario
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Hashes
    • Métodos
    • Manipulación de archivos
    • Gemas
  • Programación Orientada a Objetos en Ruby
    • Clases y objetos
    • Métodos y atributos de clase
    • Herencia
    • Módulos
    • Excepciones
  • JavaScript I
    • Primeros pasos
    • Tipos y operadores
    • Variables
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Funciones
    • Objetos literales
    • Manipulación de archivos
  • JavaScript en el navegador
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Local Storage
    • History API
    • Canvas
    • Notificaciones Web
    • Audio y Video
    • Arrastrar y soltar
    • JSON
    • Realizando peticiones HTTP
  • jQuery
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Plugins
    • Realizando peticiones con AJAX
  • JavaScript II
    • Prototipos
    • Librerías (Node.js)
    • ES6
    • Uso de this (call, apply, bind)
    • Programación funcional
    • Scope, hoisting, closures
    • Programación asincrónica
    • Testing
  • HTTP y Sinatra
    • Primeros pasos con Sinatra
    • El protocolo HTTP
    • Rutas
    • Formularios
    • Cookies y sesión
  • Bases de datos
    • Bases de datos relacionales
    • SQL
    • DDL
    • MongoDB
  • Ruby on Rails I
    • Primeros pasos
    • Arquitectura
    • Rutas
    • Layouts y rendering
    • ActiveRecord - Modelos
    • ActiveRecord - Migraciones
    • ActiveRecord - Validaciones
    • ActiveRecord - Asociaciones
    • ActiveRecord - Scopes
    • ActiveRecord - Callbacks
    • Recursos REST
    • Formularios
    • Autenticación con Devise
    • Sass y Bootstrap
    • Envío de correos
    • Carga de imágenes
    • Seeds
    • Heroku
  • Ruby on Rails II
    • Usando JavaScript (y jQuery) en Rails
    • Testing en Ruby
    • Testing en Rails
    • Creando una Web API
    • Web Sockets
  • Express.js
    • Primeros Pasos
    • El protocolo HTTP
    • Rutas
    • Vistas
    • Middlewares y manejo de errores
    • Formularios
    • Cookies y sesión
  • Express.js II
    • Mongoose
    • Web Sockets
    • Autenticación
    • Envío de correos
    • Cargar imágenes
    • Deployment
    • Testing
    • Creando una Web API
  • React
    • Primeros pasos
    • JSX
    • Componentes
    • Más sobre estado
    • Formularios
    • Peticiones HTTP con Axios
    • React Hooks
    • React Context
    • React Bootstrap
    • React Router
    • Carga de Imágenes
    • Testing
    • Estructura de carpetas
    • Componentes de clase
  • Redux
    • Primeros pasos
    • Action creators
    • Usando la librería react-redux
    • Middlewares
    • Operaciones asincrónicas con redux-thunk
    • Combinando funciones reductoras
    • Testing
    • Redux Tool Kit
  • Algoritmos
    • Describiendo un algoritmo
    • Complejidad (Big-O)
    • Estructuras de datos
    • Recursión
    • Ordenamiento
    • Búsqueda
    • Programación dinámica
  • Python
    • Primeros Pasos
    • Tipos y Variables
    • Funciones
    • Control de Flujo
    • Listas
    • Ciclos
    • Diccionarios, Tuplas y Sets
  • NumPy
    • Primeros Pasos
    • Arreglos
    • Arreglos Multidimensionales
    • Estadística con NumPy
    • Distribución Estadística
  • Pandas
    • Primeros Pasos
    • Inspección y Selección de Datos
    • Modificando Dataframes
    • La Función Lambda
    • Aggregates en Pandas
    • Múltiples Tablas
Powered by GitBook
On this page
  • Desplegando notificaciones
  • Eventos sobre las notificaciones
  1. JavaScript en el navegador

Notificaciones Web

PreviousCanvasNextAudio y Video

Last updated 2 years ago

Las notificaciones Web nos permiten alertar al usuario cuando tiene nuestra página abierta pero se encuentra en otra pestaña en el navegador o en otra aplicación.

Muy probablemente ya has recibido este tipo de notificaciones. YouTube las utiliza para notificarte de nuevos videos en canales a los que estás suscrito, Facebook las utiliza para notificarte nuevas amistades, mensajes, etc. y Gmail las utiliza para notificarte de nuevos mensajes de correo electrónico.

Para que funcionen las notificaciones Web, el usuario debe tener abierta la página desde donde se van a desplegar.

El soporte para notificaciones Web está incrementando en los navegadores pero no se recomienda depender exclusivamente de ellas para notificar información importante a los usuarios. Recuerda, además, que los usuarios deben permitir el envío de notificaciones explícitamente.

Para conocer el soporte actual de las notificaciones Web en diferentes navegadores .

Por último, las notificaciones Web generalmente se mezclan con Web Sockets, una tecnología que permite a los servidores enviar información a los navegadores sin necesidad de refrescar la página.

Desplegando notificaciones

Para desplegar una notificación Web utiliza el objeto Notification desde JavaScript.

if (window.Notification && Notification.permission !== "denied") {
  Notification.requestPermission((status) => {
    // status pasa a "granted" si es aceptado por el usuario

    // el siguiente código muestra la notificación
    var notification = new Notification('Título', {
      body: 'Este es el cuerpo del mensaje',
      icon: '/path/to/icon.png' // opcional
    });
  });
}

El primer paso para enviar una notificación es verificar si el navegador soporta las notificaciones y que el usuario no las haya bloqueado. Esto lo estamos haciendo en la línea 1.

En la línea 2 estamos solicitando el permiso a las notificaciones. Una vez han sido aceptadas se pueden empezar a enviar las notificaciones.

Una notificación se crea utilizando la función constructora Notification que recibe un título, un cuerpo y, opcionalmente, un ícono. En ese momento le aparece la notificación al usuario que varía dependiendo del navegador desde donde se genere.

Eventos sobre las notificaciones

Puedes manejar los siguientes eventos sobre las notificaciones:

  • onclick: se dispara cuando el usuario hace click sobre la notificación.

  • onclose: se dispara cuando el usuario cierra la notificación.

  • onerror: se dispara cuando la notificación encuentra un error.

  • onshow: se dispara cuando la notificación se muestra.

Para manejar los eventos simplemente se agrega una función sobre el evento correspondiente de la notificación. Por ejemplo:

var notification = new Notification(...);

notification.onclick = function() {
  parent.focus(); // enfoca la ventana que produjo la notificación
  this.close();
}
haz click acá