¿Cómo puede una aplicación web enviar notificaciones automáticas a dispositivos con iOS?

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

Para ser más específicos, para que una aplicación web envíe notificaciones automáticas a un dispositivo móvil, como el iPhone, el dispositivo móvil debe haberse registrado para recibir notificaciones automáticas 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 notificaciones automáticas al dispositivo móvil.

Como se especifica en otra respuesta, una opción es “ajustar” 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) para el usuario que muestra su aplicación web. Si bien esto funciona prácticamente de la misma manera que el navegador nativo, podría agregar la capacidad de registrarse para notificaciones automáticas utilizando los controles nativos.

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

Vea estos enlaces provistos por Peter Hosey:

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

ACTUALIZAR:
Los sitios web de Mac OS X 10.9 y Safari 7 ahora también pueden enviar notificaciones push, pero esto todavía no se aplica a iOS. Lea la Guía de progtwigción de notificaciones para sitios web . También consulte WWDC 2013 Session 614 .

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 de inserción se usa junto con las Notificaciones Web anteriores para mostrar el mensaje. La ventaja es que Push API permite que la notificación se entregue incluso cuando el usuario no navega por su sitio web, ya que se basa en Service Workers (scripts que están registrados por el navegador y pueden ejecutarse en segundo plano incluso después su usuario ha dejado su sitio web).

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

  1. un usuario visita su sitio web (debe estar protegido a través de 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 HTTP POST 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 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 gestionar 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 automáticas al escritorio Apple / Safari usando APN. El enfoque es similar, pero con muchas complicaciones (certificados de desarrollador de Apple, paquetes de inserción, conexión TCP de bajo nivel a APN).

Si desea implementar las notificaciones automáticas usted mismo, comience con estos tutoriales:

  • Push API: notificaciones push en la Web abierta
  • Sistema de notificaciones push de Apple: configuración de notificaciones automáticas de Safari

Si está buscando una solución, sugiero Pushpad , que es un servicio que he creado.

Actualización (septiembre de 2017): Apple comenzó a desarrollar los trabajadores del servicio para WebKit ( estado ). Dado que los trabajadores del servicio son una tecnología fundamental para impulsar la web, este es un gran paso adelante.

Google Chrome ahora es compatible con el estándar W3C para notificaciones push.

http://www.w3.org/TR/push-api/

EN REALIDAD … Esta es una nueva idea. En la versión más nueva de OS X (Mavericks) PUEDE enviar notificaciones automáticas desde una página web al escritorio. Pero según 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, en realidad puedes con versiones tan antiguas como Snow Leapord, enviar notificaciones push desde un sitio web siempre que dicho sitio web esté abierto y activo. El nuevo sistema operativo Mavericks permitirá notificaciones automáticas incluso si el sitio no está abierto, suponiendo que ya le 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 Push del Sitio Web de OS X directamente desde su servidor web a usuarios de OS X utilizando el servicio de Notificación 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 push en su sitio web, primero presenta una interfaz que le permite al usuario optar por recibir notificaciones. Si el usuario da su consentimiento, Safari contacta con su sitio web solicitando sus credenciales en forma de un archivo llamado paquete de envío. El paquete de envío también contiene activos de notificación utilizados a través de OS X y datos utilizados para comunicarse con un servicio web que usted configura. 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, 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 sobre las APN, lea el capítulo “Servicio de notificación Apple Push” en la Guía de progtwigción local y de notificaciones automáticas. Aunque el documento es específico para las notificaciones push de iOS y OS X, aún se aplican los paradigmas del servicio de notificación push.

Puedes usar la habilidad pusilánime si no quieres crear tu propia aplicación nativa: https://pushover.net/

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

El W3C comenzó 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 aplicaciones web, para que los desarrolladores web que crean, por ejemplo, clientes de correo electrónico basados ​​en web y clientes de mensajería instantánea puedan integrar más estrechamente su comportamiento de aplicación web con las características 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 se olvidó de implementar la posibilidad de agregar URL de inserción para que el navegador pueda solicitar notificaciones mientras se ejecuta en segundo plano, y sobre todo, si se han cerrado todas las tabs.

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

“Para el lado del cliente, WebSocket debía implementarse en Firefox 4, Google Chrome 4, Opera 11 y Safari 5, así como también la versión móvil de Safari en iOS 4.2. También BlackBerry Browser en OS7 admite WebSockets”.

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

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

Pushbullet es una gran alternativa para esto.

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

Puede utilizar la API creando una aplicación Pushbullet y conectar el usuario de su aplicación al usuario de Pushbullet utilizando oAuth2.

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