Saltar al contenido

¿Cómo enviar una notificación push al navegador web?

Esta sección ha sido probado por expertos así aseguramos la exactitud de nuestra esta división.

Solución:

Así que aquí estoy respondiendo mi propia pregunta. Obtuve respuestas a todas mis consultas de personas que crearon servicios de notificaciones automáticas en el pasado.

Actualización (mayo de 2018):
Aquí hay un documento completo y muy bien escrito sobre notificaciones push web de Google.

Respuesta a las preguntas originales formuladas hace 3 años:

  1. ¿Podemos usar GCM/APNS para enviar notificaciones automáticas a todos los navegadores web, incluidos Firefox y Safari?

Responder: Google dejó de usar GCM a partir de abril de 2018. Ahora puede usar Firebase Cloud Messaging (FCM). Esto es compatible con todas las plataformas, incluidos los navegadores web.

  1. Si no es a través de GCM, ¿podemos tener nuestro propio back-end para hacer lo mismo?

Responder: Sí, la notificación automática se puede enviar desde nuestro propio back-end. El soporte para el mismo ha llegado a todos los principales navegadores.

Consulte este laboratorio de código de Google para comprender mejor la implementación.

Algunos tutoriales:

  • Implementando notificaciones push en Django Here.
  • Usando el matraz para enviar notificaciones automáticas aquí y aquí.
  • Enviando notificación push desde Nodejs aquí
  • Envío de notificaciones push usando php Here & Here
  • Envío de notificaciones push desde Wordpress. Aquí Aquí
  • Envío de notificaciones push desde Drupal. Aquí

Implementando backend propio en varios lenguajes de programación.:

  • NodoJs.
  • PHP
  • Rieles
  • Pitón
  • Ir Lang – esto y esto

Lecturas adicionales:
– – La documentación del sitio web de Firefox se puede leer aquí. – Puede encontrar una muy buena descripción general de Web Push de Google aquí. – Un FAQ que responde a las confusiones y preguntas más comunes.

¿Existen servicios gratuitos para hacer lo mismo?
Hay algunas empresas que ofrecen una solución similar en modelos gratuitos, freemium y de pago. Estoy enumerando algunos a continuación:

  1. https://onesignal.com/ (Gratis | Compatible con todas las plataformas)
  2. https://firebase.google.com/products/cloud-messaging/ (Gratis)
  3. https://clevertap.com/ (Tiene plan gratuito)
  4. https://goroost.com/

Nota:
Al elegir un servicio gratuito, recuerde leer los TOS. Los servicios gratuitos a menudo funcionan mediante la recopilación de datos del usuario para diversos fines, incluido el análisis.

Aparte de eso, debe tener HTTPS para enviar notificaciones automáticas. Sin embargo, puede obtener https libremente a través de letsencrypt.org

Javier cubrió Notificaciones y limitaciones actuales.

Mi sugerencia: window.postMessage mientras esperamos que el navegador para discapacitados se ponga al día, de lo contrario Worker.postMessage() seguir operando con Web Workers.

Estas pueden ser la opción alternativa con el controlador de visualización de mensajes del cuadro de diálogo, para cuando falla una prueba de la función de notificación o se deniega el permiso.

Comprobación de notificación con función y permiso denegado:

if (!("Notification" in window) || (Notification.permission === "denied") ) Worker).postMessage() fallback ...

Puede enviar datos desde el servidor al navegador a través de Server Side Events. Esto es esencialmente una transmisión unidireccional a la que un cliente puede “suscribirse” desde un navegador. A partir de aquí, puede simplemente crear nuevos Notification objetos como flujo de SSE en el navegador:

var source = new EventSource('/events');

source.on('message', message => 
  var notification = new Notification(message.title, 
    body: message.body
  );
); 

Un poco viejo, pero este artículo de Eric Bidelman explica los conceptos básicos de SSE y también proporciona algunos ejemplos de código de servidor.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *