Comment une application Web peut-elle envoyer des notifications push aux appareils iOS? [fermé]

121

Je travaille sur une application Web. Comment puis-je envoyer des notifications push aux utilisateurs iOS lorsqu'il y a du nouveau contenu?

Frankie
la source
Une quelle notification maintenant?
Cherchez-vous avec le son? Ensuite, si vous voulez une notification sonore pendant que le téléphone mobile est en mode verrouillé; son nom est Specific Push.
mrbengi

Réponses:

93

Pour être plus précis, pour qu'une application Web envoie des notifications push à un appareil mobile, tel que l'iPhone, l'appareil mobile doit être enregistré pour recevoir des notifications push pour une application particulière. L'inscription à la notification push se fait via une application native et ne peut être effectuée 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 provisionner le client natif, pour envoyer les notifications push à l'appareil mobile.

Comme spécifié dans une autre réponse, une option consiste à «envelopper» votre application Web dans une application native. Cela signifie que vous créeriez une application native qui présente essentiellement une UIWebView (pour iPhone dev) à l'utilisateur montrant 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é de vous inscrire aux notifications push à l'aide des contrôles natifs.

Il vous serait utile de consulter le document de notification push d'Apple car il fournit de très bonnes informations sur le fonctionnement de la messagerie push sur l'iPhone.

Voir ces liens fournis par Peter Hosey:

Kris Babic
la source
Merci pour cette réponse, je cherchais la même chose. Cela s'applique-t-il également lorsque vous avez ajouté une balise META "compatible avec les applications web-mobiles-apple"?
Mark Knol
1
Ceci est en train de changer la façon dont les notifications push se produisent developers.google.com/web/updates/2015/03/...
Daniel Luca CleanUnicorn
1
à partir du 02/2016, FF, Chrome et Safari peuvent s'inscrire au push depuis webapp.
Yvon Huynh
9
Ce n'est plus le cas en 2016, vous pouvez envoyer des notifications à partir d'applications Web. Lisez ma réponse ci-dessous.
collimarco
Mais la webview ne fonctionne pas très bien, elle manque certaines fonctionnalités et a plus de bugs que safari
Noir
46

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

MISE À JOUR: Les
sites Web Mac OS X 10.9 et Safari 7 peuvent désormais également 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 la session 614 de la WWDC 2013 .

Félix
la source
1
maintenant vous pouvez sur Maverix & Safari 7!
themihai
Safari 7 peut certainement recevoir ces notifications push et en fonction du backend exécuté par votre application Web, il existe quelques services qui permettent cela: pushwoosh.com , pushmonkey.launchrock.com ou vous pouvez déployer votre propre serveur, ce qui est très similaire à Notifications push iOS.
Tudor
J'ai entendu dire que cela s'appelle une poussée spécifique.
mrbengi
3
La question OP concerne spécifiquement iOS. La prise en charge OSX / macOS pour cela est bien, mais les notifications push ne fonctionnent toujours que sur iOS à partir d'une application native.
squarecandy
44

Bien qu'ils ne soient pas encore pris en charge sur iOS (à partir d'iOS 10), les sites Web peuvent envoyer des notifications push à Firefox et Chrome (bureau / Android) avec l' API Push .

L'API Push est utilisée avec les anciennes notifications Web pour afficher le message. L'avantage est que l'API Push permet à la notification d'être envoyée même lorsque l'utilisateur ne surfe pas sur votre site Web, car ils sont construits sur les Service Workers (scripts qui sont enregistrés par le navigateur et peuvent être exécutés en arrière-plan ultérieurement, même après 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 des notifications push et vous enregistrez un service worker (un script qui sera exécuté lors de la réception d'une notification push)
  2. si l'utilisateur a accordé l'autorisation, vous pouvez lire le jeton d'appareil (point final) qui doit être envoyé au serveur et stocké
  3. vous pouvez maintenant envoyer des notifications à l'utilisateur: votre serveur envoie une requête HTTP POST au point de terminaison (qui est une URL qui contient le jeton de l'appareil). Le serveur qui reçoit la demande appartient au fabricant du navigateur (par exemple Google, Mozilla): le navigateur y est constamment connecté et peut lire les notifications entrantes.
  4. lorsque le navigateur de l'utilisateur reçoit une notification, exécute le technicien de service, qui est responsable de la gestion de l'événement, récupère les données de notification du serveur et affiche 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 à Apple / Safari bureau l'aide d'APN. L'approche est similaire, mais avec de nombreuses complications (certificats de développeur Apple, packages push, connexion TCP de bas niveau aux APN).

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

Si vous recherchez une solution de remplacement , je suggérerais Pushpad , un service que j'ai créé.

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

collimarco
la source
3
Depuis iOS 10 (version bêta publique), Mobile Safari ne prend pas en charge les notifications push.
Robin Daugherty
1
Ce n'était pas une correction de votre réponse, je fournissais des informations aux personnes à la recherche de l'assistance Safari Mobile. Un jour, peut-être qu'ils prendront en charge les notifications push, mais ce n'est pas le cas à partir de la version que j'ai mentionnée.
Robin Daugherty
14
Safari est le nouvel Internet Explorer. Apple est le nouveau Microsoft. Ugh ....
Costa
1
@Kevincore Non, malheureusement, il n'y a pas de mises à jour. Safari sur iOS ne prend pas en charge le Web Push pour le moment (mai 2017).
collimarco
1
Faisons pression sur Apple: j'ai écrit quelques paragraphes que vous pouvez copier et soumettre à Apple Bug Tracker pour demander à Apple d'ajouter le push web à iOS.
collimarco
10

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

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

BonzaiLe Pingouin
la source
Voici un tutoriel approfondi: développeurs.google.com
web
1
Cela inclut-il Chrome pour iOS? (La question d'origine était spécifique à iOS)
Simon East
Pas d'iOS sur quoi que ce soit pour le moment.
Doit
9

VRAIMENT .. Ceci est tout nouveau pour vous .. Sur la dernière version d'OS X (Mavericks), vous POUVEZ envoyer des notifications push d'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 prévoit d'autoriser 2 types de notifications push: les notifications push du 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 des notifications push Android.

De plus, vous pouvez en fait, avec des versions aussi anciennes que Snow Leapord, envoyer des notifications push depuis un site Web tant que ce site Web est ouvert et actif. Le nouveau système d'exploitation Mavericks autorisera les notifications push même si le site n'est pas ouvert, en supposant que vous ayez déjà donné l'autorisation audit site d'envoyer des notifications push.

De la bouche d'Apple:

Dans OS X v10.9 et versions ultérieures, vous pouvez envoyer des notifications push de site Web OS X à partir de votre serveur Web directement aux utilisateurs d'OS X à l'aide du service de notification push Apple (APN). À ne pas confondre avec les 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 dans votre site Web, vous présentez d'abord une interface qui permet à l'utilisateur d'accepter 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 ressources de notification utilisées 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 l'appareil appelé jeton d'appareil. L'utilisateur reçoit la notification lorsque vous envoyez la combinaison de ce jeton d'appareil et de votre message, ou charge utile, aux APN.

Dès 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 notification push Apple» dans le 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.

Jonathan Nemeth
la source
5
J'espère que cela signifie que nous verrons des notifications push basées sur le Web par iOS 8 ou 9. Croisons les doigts.
Travis
5
La documentation du développeur indique explicitement que les notifications Web ne s'appliquent pas actuellement à iOS. Juste pour clarifier votre premier paragraphe.
Daniel Sellers
1
Sachant Apple, ils l'autoriseront pour une version d'iOS et le supprimeront pour la suivante
Alexander Derck
6

Non, il n'y a aucun moyen pour une application Web de recevoir une notification push. Ce que vous pouvez faire, c'est envelopper votre application Web dans une application native dotée de notifications push.

JustSid
la source
que voulez-vous dire lorsque vous dites "enveloppez votre application Web dans une application native"?
Frankie
1
Frankie: Eh bien, juste une application native qui affiche une UIWebView qui charge ensuite votre site. Cela vous permet d'avoir votre application Web en tant qu'application native sur le téléphone.
JustSid
donc je suppose que dans xcode ce serait "WindowBase Aplication" pour une application native, non?
Frankie
maintenant vous pouvez sur Maverix & Safari 7!
themihai
1
@DanDascalescu Pourquoi le ferais-je? Ce n'est toujours pas possible sur iOS, c'est sur quoi portait la question. La réponse n'est pas incorrecte.
JustSid
2

Le W3C a lancé en 2010 un groupe de travail pour mettre en œuvre 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 afin que les développeurs Web créant, par exemple, des clients de messagerie Web et des clients de messagerie instantanée puissent intégrer plus étroitement le comportement de leur application Web aux fonctionnalités 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.

mgutt
la source
2

Vous pouvez utiliser les Websockets HTML5 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. Le navigateur BlackBerry dans OS7 prend également en charge WebSockets."

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

Foyzul Karim
la source
6
eh bien, cela ne fonctionnerait que si le navigateur est ouvert et dans la page Webapp. contrairement aux notifications push, qui fonctionnent même lorsque l'appication est désactivée.
Hagai L
2

Pushbullet est une excellente alternative pour cela.

Cependant, l'utilisateur doit avoir un compte Pushbullet et l'application installée (iOS, Android) ou le plugin installé (Chrome, Opera, Firefox et Windows).

Vous pouvez utiliser l' 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 rendrait les choses beaucoup plus faciles, pour PHP, je pourrais recommander ivkos / Pushbullet-for-PHP .

Tim
la source
1

Consultez les notifications Xtify Web Push. http://getreactor.xtify.com/ Cet outil vous permet de pousser du contenu sur une page Web et de cibler les visiteurs ainsi que de déclencher des messages en fonction des événements DOM du navigateur. Il est spécialement conçu pour le mobile.

Jérémie
la source