¿Cómo puede una aplicación web enviar notificaciones push a dispositivos iOS? [cerrado]

121

Estoy trabajando en una aplicación web. ¿Cómo puedo enviar notificaciones push a usuarios de iOS cuando hay contenido nuevo?

Frankie
fuente
¿A qué notificación ahora?
¿Estás buscando con sonido? Luego, si desea una notificación de sonido mientras el teléfono móvil está bloqueado; Su nombre es Push específico.
mrbengi

Respuestas:

93

Para ser más específico, para que una aplicación web envíe notificaciones push a un dispositivo móvil, como el iPhone, el dispositivo móvil debe haberse registrado para recibir notificaciones push para una aplicación en particular. El registro para la notificación push se realiza a través de una aplicación nativa y solo se puede realizar a través de una aplicación nativa. Una vez que la aplicación nativa se registra para la notificación automática, puede enviar el token de autorización al servidor, que se puede usar junto con el certificado utilizado para aprovisionar al cliente nativo, para enviar las notificaciones automáticas al dispositivo móvil.

Como se especifica en otra respuesta, una opción es 'envolver' su aplicación web en una aplicación nativa. Lo que significa que crearía una aplicación nativa que básicamente presenta un UIWebView (para iPhone dev) al usuario que muestra su aplicación web. Si bien esto funciona de la misma manera que el navegador nativo, podría agregar la capacidad de registrarse para recibir notificaciones automáticas utilizando los controles nativos.

Sería beneficioso para usted revisar el documento de notificación push de Apple, ya que proporciona información bastante buena sobre cómo funciona la mensajería push en el iPhone.

Vea estos enlaces proporcionados por Peter Hosey:

Kris Babic
fuente
Gracias por esta respuesta, estaba buscando lo mismo. ¿Esto también se aplica cuando ha agregado una metaetiqueta 'apple-mobile-web-app-able'?
Mark Knol
1
Esto está cambiando la forma en que ocurren las notificaciones push developers.google.com/web/updates/2015/03/…
Daniel Luca CleanUnicorn
1
a partir del 02/2016, FF, Chrome y Safari pueden registrarse para enviar desde la aplicación web.
Yvon Huynh
9
Esto ya no es así en 2016, puede enviar notificaciones desde aplicaciones web. Lee mi respuesta a continuación.
collimarco
Pero la vista web no funciona muy bien, pierde algunas características y tiene más errores que safari
Negro
46

No, solo las aplicaciones nativas de iOS admiten notificaciones push.

ACTUALIZACIÓN: los
sitios web de Mac OS X 10.9 y Safari 7 ahora también pueden enviar notificaciones push, pero esto aún no se aplica a iOS. Lea la Guía de programación de notificaciones para sitios web . Consulte también la Sesión 614 de WWDC 2013 .

Felix
fuente
1
ahora puedes en Maverix y Safari 7!
themihai
Safari 7 seguramente puede recibir estas notificaciones push y, dependiendo de qué back-end esté ejecutando su aplicación web, hay algunos servicios que lo permiten: pushwoosh.com , pushmonkey.launchrock.com o podría implementar su propio servidor, que es muy similar a Notificaciones push de iOS.
Tudor
Escuché que esto se llama Push específico.
mrbengi
3
La pregunta de OP es específicamente sobre iOS. El soporte de OSX / macOS para esto es bueno, pero las notificaciones push solo funcionan en iOS desde una aplicación nativa.
squarecandy
44

Si bien aún no es compatible con iOS (a partir de iOS 10), los sitios web pueden enviar notificaciones push a Firefox y Chrome (Desktop / Android) con la API Push .

La API Push se usa junto con las notificaciones web anteriores para mostrar el mensaje. La ventaja es que la API Push permite que la notificación se entregue incluso cuando el usuario no está navegando por su sitio web, ya que se basan en Service Workers (secuencias de comandos que están registradas por el navegador y pueden ejecutarse en segundo plano más adelante, incluso después de su usuario ha abandonado su sitio web).

El proceso de enviar una notificación implica lo siguiente:

  1. un usuario visita su sitio web (debe estar protegido mediante HTTPS): solicita permiso para mostrar notificaciones push y registra a un trabajador de servicio (un script que se ejecutará cuando se reciba una notificación push)
  2. Si el usuario ha otorgado permiso, puede leer el token del dispositivo (punto final) que debe enviarse al servidor y almacenarse
  3. ahora puede enviar notificaciones al usuario: su servidor realiza una solicitud POST HTTP al punto final (que es una URL que contiene el token del dispositivo). El servidor que recibe la solicitud es propiedad del fabricante del navegador (por ejemplo, Google, Mozilla): el navegador está constantemente conectado a él y puede leer las notificaciones entrantes.
  4. cuando el navegador del usuario recibe una notificación, ejecuta al trabajador del servicio, que es responsable de administrar el evento, recuperar los datos de notificación del servidor y mostrar la notificación al usuario

La API Push actualmente es compatible con computadoras de escritorio y Android con Chrome , Firefox y Opera .

También puede enviar notificaciones push a Apple / escritorio de Safari usando APN. El enfoque es similar, pero con muchas complicaciones (certificados de desarrollador de Apple, paquetes push, conexión TCP de bajo nivel a APN).

Si desea implementar las notificaciones push usted mismo, comience con estos tutoriales:

Si está buscando una solución de bajada , le sugeriría Pushpad , que es un servicio que he creado.

Actualización (septiembre de 2017): Apple ha comenzado a desarrollar los trabajadores de servicios para WebKit ( estado ). Dado que los trabajadores de servicios son una tecnología fundamental para el empuje web, este es un gran paso adelante.

collimarco
fuente
3
A partir de iOS 10 (versión beta pública), Mobile Safari no admite notificaciones push.
Robin Daugherty
1
No fue una corrección de su respuesta, estaba proporcionando información para las personas que buscan soporte de Safari Mobile. Algún día tal vez admitirán notificaciones push, pero no lo hacen a partir del lanzamiento que mencioné.
Robin Daugherty
14
Safari es el nuevo Internet Explorer. Apple es el nuevo Microsoft. Ugh ....
Costa
1
@Kevincore No, desafortunadamente no hay actualizaciones. Safari en iOS no admite el empuje web en este momento (mayo de 2017).
collimarco
1
Vamos a presionar un poco a Apple: escribí algunos párrafos que puedes copiar y enviar al Apple Bug Tracker para pedirle a Apple que agregue el empuje web a iOS.
collimarco
9

REALMENTE ... Esto es completamente nuevo para ti ... En la versión más reciente de OS X (Mavericks) PUEDES enviar notificaciones push desde una página web al escritorio. Pero de acuerdo con la documentación, NO iPhones:

Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.

Actualmente, Apple tiene planes para permitir 2 tipos de notificaciones push: Notificaciones Push del sitio web de OS X y Notificaciones locales.

El obstáculo obvio aquí es que esto no funcionará en las PC, ni le permitirá hacer notificaciones push de Android.

Además, con versiones tan antiguas como Snow Leapord, puede enviar notificaciones automáticas desde un sitio web siempre que dicho sitio web esté abierto y activo. El nuevo sistema operativo Mavericks permitirá las notificaciones automáticas incluso si el sitio no está abierto, suponiendo que ya haya dado permiso a dicho sitio para enviar notificaciones automáticas.

De la boca de Apple:

En OS X v10.9 y posterior, puede enviar notificaciones automáticas del sitio web de OS X desde su servidor web directamente a los usuarios de OS X mediante el servicio de notificaciones push de Apple (APN). No debe confundirse con las notificaciones locales, las notificaciones push pueden llegar a sus usuarios independientemente de si su sitio web o su navegador web está abierto ...

Para integrar las notificaciones automáticas en su sitio web, primero presenta una interfaz que permite al usuario optar por recibir notificaciones. Si el usuario da su consentimiento, Safari se comunica con su sitio web solicitando sus credenciales en forma de un archivo llamado paquete push. El paquete push también contiene activos de notificación utilizados en todo OS X y datos utilizados para comunicarse con un servicio web que configure. Si el paquete push es válido, recibirá un identificador único para el usuario en el dispositivo conocido como token de dispositivo. El usuario recibe la notificación cuando envía la combinación de este token de dispositivo y su mensaje, o carga útil, a APN.

Al recibir la notificación, el usuario puede hacer clic en ella para abrir una página web de su elección en el navegador predeterminado del usuario.

Nota: Si necesita una actualización de APN, lea el capítulo "Servicio de notificaciones push de Apple" en la Guía de programación de notificaciones push y locales. Aunque el documento es específico para las notificaciones push de iOS y OS X, los paradigmas del servicio de notificaciones push todavía se aplican.

Jonathan Nemeth
fuente
55
Esto, con suerte, significa que veremos notificaciones push basadas en la web por iOS 8 o 9. Manteniendo mis dedos cruzados.
Travis
55
Los documentos del desarrollador dicen explícitamente que las notificaciones web no se aplican a iOS actualmente. Solo como una aclaración de su primer párrafo.
Daniel Sellers
1
Sabiendo que Apple lo permitirá para una versión de iOS y lo eliminará para la próxima
Alexander Derck
7

No, no hay forma de que una aplicación web reciba notificaciones push. Lo que podría hacer es envolver su aplicación web en una aplicación nativa que tenga notificaciones push.

JustSid
fuente
¿Qué quieres decir cuando dices "envolver tu aplicación web en una aplicación nativa"?
Frankie
1
Frankie: Bueno, solo una aplicación nativa que muestra un UIWebView que luego carga tu sitio. Eso le permite tener su aplicación web como aplicación nativa en el teléfono.
JustSid
así que supongo que en xcode esto sería "Aplicación de WindowBase" para la aplicación nativa, ¿verdad?
Frankie
ahora puedes en Maverix y Safari 7!
themihai
1
@DanDascalescu ¿Por qué debería? Todavía no es posible en iOS, que es de lo que se trataba la pregunta. La respuesta no es incorrecta.
JustSid
2

El W3C inició en 2010 un grupo de trabajo para implementar notificaciones:
http://www.w3.org/2010/web-notifications/

Este grupo de trabajo desarrolla API que exponen esos mecanismos a las aplicaciones web, de modo que los desarrolladores web que crean, por ejemplo, clientes de correo electrónico y clientes de mensajería instantánea pueden integrar más estrechamente el comportamiento de sus aplicaciones web con las funciones de notificación de los sistemas operativos. de sus usuarios finales.

Finalmente, el resultado es como un chiste malo, ya que solo funciona si el sitio web específico está abierto: http://alxgbsn.co.uk/notify.js/

Creo que no implementaron la posibilidad de agregar URL push para que el navegador pueda solicitar notificaciones mientras se ejecuta en segundo plano, y sobre todo, si todas las pestañas se han cerrado.

mgutt
fuente
2

Puede usar HTML5 Websockets para presentar sus propios mensajes push. De Wikipedia :

"Para el lado del cliente, WebSocket se implementaría en Firefox 4, Google Chrome 4, Opera 11 y Safari 5, así como en la versión móvil de Safari en iOS 4.2. También el navegador BlackBerry en OS7 es compatible con WebSockets".

Para hacer esto, necesita su propio servidor de proveedor para enviar los mensajes a los clientes.
Si desea utilizar APN (Apple Push Notification) o C2DM (Cloud to Device Message), debe tener una aplicación nativa que debe descargarse a través de la tienda en línea.

Foyzul Karim
fuente
66
bueno, solo funcionaría si el navegador está abierto y en la página de la aplicación web. a diferencia de las notificaciones push, que funcionan incluso cuando la aplicación está apagada.
Hagai L
2

Pushbullet es una gran alternativa para esto.

Sin embargo, el usuario debe tener una cuenta de Pushbullet y la aplicación instalada (iOS, Android) o el complemento instalado (Chrome, Opera, Firefox y Windows).

Puedes usar la API creando una aplicación Pushbullet y conectar el usuario de su aplicación al usuario de Pushbullet usando oAuth2.

Usar una biblioteca lo haría mucho más fácil, para PHP podría recomendar ivkos / Pushbullet-for-PHP .

Tim
fuente
1

Echa un vistazo a las notificaciones Xtify Web Push. http://getreactor.xtify.com/ Esta herramienta le permite insertar contenido en una página web y apuntar a los visitantes, así como activar mensajes basados ​​en eventos DOM del navegador. Está diseñado específicamente para dispositivos móviles.

Jeremy
fuente