¿Cómo puede una aplicación web enviar notifications push a dispositivos iOS?

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

Para ser más específico, para que una aplicación web envíe notifications push a un dispositivo mobile, como el iPhone, el dispositivo mobile debe haberse registrado para recibir notifications push para una aplicación en particular. El logging para notifications 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 está registrada para notifications push, puede enviar el token de autorización al server, que puede usarse junto con el certificate utilizado para aprovisionar al cliente nativo, para enviar las notifications push al dispositivo mobile.

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ías una aplicación nativa que presenta básicamente un UIWebView (para iPhone) para el usuario que muestra tu aplicación web. Si bien esto prácticamente funciona de la misma manera que el browser nativo, podría agregar la capacidad de registrarse para las notifications push 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 las funciones de postría instantánea en el iPhone.

Vea estos enlaces proporcionados por Peter Hosey:

No, solo las aplicaciones iOS nativas admiten las notifications push.

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

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

La API Push se utiliza junto con las notifications web anteriores para mostrar el post. La ventaja es que la API Push permite que la notificación se entregue incluso cuando el usuario no navega por su website, ya que está construido sobre los Trabajadores del service (scripts que están registrados por el browser y pueden ejecutarse en segundo plano incluso después tu usuario ha salido de tu website).

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

  1. un usuario visita su website (debe estar protegido a través de HTTPS): solicita permiso para mostrar las notifications push y registra un trabajador de service (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 server y almacenarse
  3. ahora puede enviar notifications al usuario: su server realiza una request HTTP POST al punto final (que es una URL que contiene el token del dispositivo). El server que recibe la request es propiedad del fabricante del browser (por ejemplo, Google, Mozilla): el browser está constantemente conectado a él y puede leer las notifications entrantes.
  4. cuando el browser del usuario recibe una notificación, se ejecuta el trabajador del service, que es responsable de gestionar el evento, recuperar los datos de notificación del server y mostrar la notificación al usuario

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

También puede enviar notifications push a la computadora Apple / Safari usando APN. El enfoque es similar, pero con muchas complicaciones (certificates de desarrollador de Apple, packages push, connection TCP de bajo nivel a APN).

Si quieres implementar las notifications push por ti mismo, comienza con estos tutoriales:

  • API push: notifications push en la web abierta
  • Sistema de notifications Push de Apple: Configuración de notifications Push Safari

Si buscas una solución, sugeriría Pushpad , que es un service que he creado.

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

Google Chrome ahora es compatible con el estándar W3C para notifications automáticas.

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

ACTUALMENTE … Esto es completamente nuevo. En la versión más nueva de OS X (Mavericks), puedes enviar notifications push desde una página web al escritorio. Pero según la documentation, NO los iPhones:

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

Actualmente, Apple tiene planes para permitir 2 types de notifications push: notifications push de website OS X y notifications locales.

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

Además, puede hacerlo con versiones tan antiguas como Snow Leapord, enviar notifications push desde un website siempre que dicho website esté abierto y activo. El nuevo sistema operativo Mavericks permitirá notifications push incluso si el sitio no se abre, suponiendo que ya haya dado permiso a dicho sitio para enviar notifications push.

Desde la boca de Apple:

En OS X v10.9 y posterior, puede enviar Notificaciones Push de website de OS X desde su server web directamente a los usuarios de OS X mediante el service de notificación Push de Apple (APN). No debe confundirse con las notifications locales, las notifications push pueden llegar a sus usuarios sin importar si su website o su browser web está abierto …

Para integrar las notifications push en su website, primero presenta una interfaz que le permite al usuario optar por recibir notifications. Si el usuario da su consentimiento, Safari se pone en contacto con su website solicitando sus cnetworkingenciales en forma de un file llamado package push. El package push también contiene los activos de notificación utilizados en OS X y los datos utilizados para comunicarse con un service web que configure. Si el package de inserción 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 del dispositivo y su post, o carga útil, a los APN.

Al recibir la notificación, el usuario puede hacer clic en él para abrir una página web de su elección en el browser pnetworkingeterminado del usuario.

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

Puede usar pushover si no desea crear su propia aplicación nativa: https://pushover.net/

No, no hay forma de que una aplicación web reciba notifications push. Lo que puedes hacer es envolver tu webapp en una aplicación nativa que tiene notifications push.

El W3C comenzó en 2010 un grupo de trabajo para implementar notifications:
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 postría instantánea pueden 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 funciona solo si el website específico está abierto: http://alxgbsn.co.uk/notify.js/

Creo que se perdieron para implementar la posibilidad de agregar urls push para que el browser pueda solicitar notifications mientras se ejecuta en segundo plano y, sobre todo, si todas las tabs se han cerrado.

Puede usar los Websockets HTML5 para presentar sus propios posts de inserción. De la Wikipedia :

"Para el lado del cliente, WebSocket se implementó en Firefox 4, Google Chrome 4, Opera 11 y Safari 5, así como la versión mobile de Safari en iOS 4.2. Además, el browser BlackBerry en OS7 admite WebSockets".

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

Echa un vistazo a las notifications Xtify Web Push. http://getreactor.xtify.com/ Esta herramienta te permite insert contenido en una página web y orientar a los visitantes, así como activar posts basados ​​en los events DOM del browser. Está diseñado específicamente con dispositivos mobilees en mente.

Pushbullet es una gran alternativa para esto.

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

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

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