web-dev-qa-db-fra.com

Envoyer des notifications sur le Bureau dans Chrome ou Firefox à partir d'une application Web fermée?)

Mon objectif est d’envoyer notifications sur le bureau de style Gmail dans Chrome ou Firefox depuis une application Web (appelons-le X) qui n’est PAS actuellement ouvert dans le navigateur, sans Exiger que l'utilisateur installe une application ou une extension. Si l'utilisateur doit accorder l'autorisation de recevoir des notifications de X et si le navigateur doit être ouvert pour que la notification apparaisse, aussi longtemps que X n'a ​​pas besoin de le faire. être ouvert dans le navigateur. Une solution ne nécessitant aucune fenêtre du navigateur ne fonctionnerait pas non plus.

Je viens de passer la journée à creuser le sujet et, jusqu’à présent, j’ai pensé :

  • Depuis OSX Mavericks, cela a été possible dans Safari 7+ via Safari Push Notifications .
  • Web Notifications API fonctionne dans Chrome/Firefox, mais nécessite que le navigateur de l'utilisateur soit ouvert à X.
  • Twitter envoie des notifications Web similaires sans demander la permission à l'utilisateur au préalable, mais requiert que le navigateur de l'utilisateur soit ouvert à Twitter.
  • Il existe de nombreuses références à des implémentations possibles Growl , mais pour autant que je sache, chacune d'entre elles nécessite que l'utilisateur installe Growl et/ou une application activée par Growl pour fonctionner.

Je peux me tromper à propos de l'une de mes déclarations ci-dessus - j'aimerais l'entendre! - et je suis ouvert à toute autre solution aussi. Des idées?

Merci d'avoir lu.

59
user1544138

Vous pouvez envoyer des notifications Push même lorsque votre page Web n'est pas active en utilisant Service Workers , le Notification API for Service Service et le Push API pour le serveur. notifications initiées (ou notifications programmées ).

À compter de juin 2016, les agents de service sont pris en charge par Chrome, Firefox et Opera. Voir le statut sur https://jakearchibald.github.io/isserviceworkerready/

Voir les liens suivants pour des discussions connexes, l'état de la mise en œuvre et les spécifications.

73
Rob W

Vous pouvez faire exactement ce que vous recherchez en utilisant l'API Push du W3C .

Si vous voulez tout construire à partir de zéro, je vous suggère de commencer à lire ce tutoriel de Google . C'est pour Chrome, mais Firefox fonctionne dans d'une manière très similaire .

Cependant, cela demande beaucoup de travail et le "standard" continue d'évoluer: je vous suggère d'utiliser un service tel que Pushpad (je suis le fondateur).

2
collimarco