web-dev-qa-db-fra.com

Comment une application Web peut-elle envoyer des notifications Push à des appareils iOS?

Je travaille sur une application web. Comment puis-je envoyer des notifications Push aux utilisateurs iOS lorsqu'un nouveau contenu est créé?

114
Frankie

Plus précisément, pour qu'une application Web puisse envoyer des notifications Push à un appareil mobile, tel que l'iPhone, ce dernier doit être enregistré pour recevoir les notifications Push d'une application particulière. L'enregistrement pour la notification Push s'effectue via une application native et ne peut être effectué que via une application native. Une fois que l'application native est enregistrée pour la notification Push, elle peut envoyer le jeton d'autorisation au serveur, qui peut être utilisé conjointement avec le certificat utilisé pour approvisionner le client natif, afin d'envoyer les notifications Push au périphérique mobile.

Comme spécifié dans une autre réponse, une option consiste à "encapsuler" votre application Web dans une application native. Cela signifie que vous créeriez une application native qui présente fondamentalement un UIWebView (pour iPhone dev) à l'utilisateur affichant votre application Web. Bien que cela fonctionne à peu près de la même manière que le navigateur natif, vous pourrez ajouter la possibilité d’enregistrer des notifications Push à l’aide des contrôles natifs.

Il serait avantageux pour vous de consulter le document de notification Push d’Apple, qui contient de très bonnes informations sur le fonctionnement de la messagerie Push sur l’iPhone.

Voir ces liens fournis par Peter Hosey:

89
Kris Babic

Non, seules les applications iOS natives prennent en charge les notifications Push.

UPDATE:
Les sites Web Mac OS X 10.9 et Safari 7 peuvent désormais envoyer des notifications Push, mais cela ne s'applique toujours pas à iOS. Lisez le Guide de programmation des notifications pour les sites Web . Consultez également WWDC 2013 Session 614 .

44
Felix

Bien que ne soit pas encore pris en charge sur iOS (à partir de iOS 10), les sites Web peuvent envoyer des notifications Push à Firefox et Chrome ( Desktop/Android) avec le Push API .

L'API Push est utilisée avec l'ancien Web Notifications pour afficher le message. L’avantage est que l’API Push permet à la notification d’être envoyée même lorsque l’utilisateur ne navigue pas sur votre site Web, car ils reposent sur des techniciens de service (scripts enregistrés par le navigateur et pouvant être exécutés en arrière-plan ultérieurement même votre utilisateur a quitté votre site Web).

Le processus d'envoi d'une notification implique les éléments suivants:

  1. un utilisateur visite votre site Web (doit être sécurisé via HTTPS): vous demandez l'autorisation d'afficher les notifications Push et vous enregistrez un technicien de service (un script sera exécuté lors de la réception d'une notification Push).
  2. si l'utilisateur a accordé une autorisation, vous pouvez lire le jeton de périphérique (noeud final) qui doit être envoyé au serveur et stocké.
  3. vous pouvez désormais envoyer des notifications à l'utilisateur: votre serveur envoie une demande HTTP POST au noeud final (une URL contenant le jeton de périphérique). Le serveur qui reçoit la demande appartient à Constructeur du navigateur (Google, Mozilla, par exemple): le navigateur est connecté en permanence et peut lire les notifications entrantes.
  4. lorsque le navigateur de l'utilisateur reçoit une notification, le prestataire de services est chargé de la gestion de l'événement, de l'extraction des données de notification du serveur et de l'affichage de la notification à l'utilisateur.

L’API Push est actuellement prise en charge sur les ordinateurs de bureau et Android par Chrome , Firefox et Opera .

Vous pouvez également envoyer des notifications Push à un Apple/ bureau Safari à l'aide d'APN. L'approche est similaire mais avec de nombreuses complications (Certificats de développeur Apple, packages Push, bas niveau TCP à des APN)).

Si vous souhaitez implémenter vous-même les notifications Push, commencez par ces didacticiels:

Si vous êtes à la recherche d’une solution de remplacement, je vous conseillerais Pushpad , qui est un service que j’ai construit.

Mise à jour (septembre 2017): Apple a commencé à développer les opérateurs de service pour WebKit ( status ). Étant donné que les techniciens de maintenance constituent une technologie fondamentale pour le Web Push, il s'agit d'un grand pas en avant.

39
collimarco

Google Chrome prend désormais en charge la norme W3C pour les notifications Push.

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

10
BonzaiThePenguin

ACTUELLEMENT .. C’est un tout nouvel esprit que vous avez .. Sur la dernière version de OS X (Mavericks), vous PEUT envoyer des notifications Push depuis une page Web vers le bureau. Mais selon la documentation, PAS les iPhones:

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

Actuellement Apple envisage d'autoriser 2 types de notifications Push: les notifications Push de site Web OS X et les notifications locales.

L’obstacle évident ici est que cela ne fonctionnera pas sur les PC et ne vous permettra pas non plus de faire Android Notifications push.

En outre, vous pouvez réellement, avec des versions aussi anciennes que Snow Leapord, envoyer des notifications Push depuis un site Web, à condition que ce site soit ouvert et actif. Le nouveau système d'exploitation Mavericks autorisera les notifications Push même si le site n'est pas ouvert, à condition que vous ayez déjà donné l'autorisation à ce site d'envoyer des notifications Push.

De la bouche d'Apple:

Sous OS X v10.9 et versions ultérieures, vous pouvez envoyer des notifications push de site Web OS X directement de votre serveur Web aux utilisateurs OS X à l'aide du service de notification Apple Push. (APN)). À ne pas confondre grâce aux notifications locales, les notifications Push peuvent atteindre vos utilisateurs, que votre site Web ou leur navigateur Web soit ouvert…

Pour intégrer les notifications Push à votre site Web, vous devez d'abord présenter une interface permettant à l'utilisateur de choisir de recevoir des notifications. Si l'utilisateur y consent, Safari contacte votre site Web pour lui demander ses informations d'identification sous la forme d'un fichier appelé package Push. Le package Push contient également des actifs de notification utilisés dans OS X et des données utilisées pour communiquer avec un service Web que vous configurez. Si le package Push est valide, vous recevez un identifiant unique pour l'utilisateur sur le périphérique, appelé jeton de périphérique. L'utilisateur reçoit la notification lorsque vous envoyez la combinaison de ce jeton de périphérique et de votre message, ou charge utile, aux APN.

À la réception de la notification, l’utilisateur peut cliquer dessus pour ouvrir une page Web de votre choix dans le navigateur par défaut de l’utilisateur.

Remarque: Si vous avez besoin d'un rappel sur les APN, lisez le chapitre "Service de notifications Apple Push" du Guide de programmation des notifications locales et push. Bien que le document soit spécifique aux notifications Push iOS et OS X, les paradigmes du service de notification Push s'appliquent toujours.

9
Jonathan Nemeth

Vous pouvez utiliser le transfert si vous ne souhaitez pas créer votre propre application native: https://pushover.net/

8
Sam

Non, aucune application Web ne peut recevoir de notification Push. Ce que vous pouvez faire est d’envelopper votre application Web dans une application native qui contient des notifications Push.

7
JustSid

Le W3C a démarré en 2010 un groupe de travail pour implémenter les notifications:
http://www.w3.org/2010/web-notifications/

Ce groupe de travail développe des API qui exposent ces mécanismes aux applications Web. Ainsi, les développeurs Web qui créent, par exemple, des clients de messagerie Web et des clients de messagerie instantanée peuvent intégrer plus étroitement le comportement de leurs applications Web aux fonctions de notification des systèmes d'exploitation. de leurs utilisateurs finaux.

Enfin, le résultat est comme une mauvaise blague car cela ne fonctionne que si le site Web spécifique est ouvert: http://alxgbsn.co.uk/notify.js/

Je pense qu'ils ont manqué de mettre en œuvre la possibilité d'ajouter des URL Push afin que le navigateur puisse demander des notifications pendant son exécution en arrière-plan - et surtout - si tous les onglets ont été fermés.

2
mgutt

Vous pouvez utiliser HTML5 Websockets pour introduire vos propres messages Push. De Wikipedia :

"Du côté client, WebSocket devait être implémenté dans Firefox 4, Google Chrome 4, Opera 11 et Safari 5, ainsi que la version mobile de Safari sous iOS 4.2 et BlackBerry Browser sous OS7 prend également en charge WebSockets. "

Pour ce faire, vous avez besoin de votre propre serveur fournisseur pour envoyer les messages aux clients.
Si vous souhaitez utiliser APN (Notification Apple Push) ou C2DM (Message Cloud to Device), vous devez disposer d'une application native qui doit être téléchargée via le magasin en ligne.

2
Foyzul Karim

Pushbullet est une excellente alternative pour cela.

Toutefois, l'utilisateur doit disposer d'un compte Pushbullet et de l'application (iOS, Android) ou du plug-in (Chrome, Opera, Firefox et Windows) installés.

Vous pouvez utiliser le API en créant une application Pushbullet et connecter l'utilisateur de votre application à l'utilisateur Pushbullet à l'aide de oAuth2.

Utiliser une bibliothèque faciliterait beaucoup les choses, car PHP je pourrais recommander ivkos/Pushbullet-for-PHP .

2
Tim

Découvrez les notifications Xtify Web Push. http://getreactor.xtify.com/ Cet outil vous permet de diffuser du contenu sur une page Web et de cibler des visiteurs, ainsi que de déclencher des messages basés sur les événements DOM du navigateur. Il a été spécialement conçu pour les téléphones mobiles.

1
Jeremy