Bonjour.
Dans le cadre d’un site web proposant, entre autres, un compteur temporel pour surveiller le temps d’exécution d’une action IRL, j’avais envie d’utiliser les plus-ou-moins-nouvelles API HTML5 pour contrôler les notifications et vibrations d’un appareil mobile. Le cas d’utilisation typique étant de lancer le compteur en touchant un bouton, d’éteindre son téléphone et de le laisser dans sa poche, et d’attendre de sentir la vibration pour savoir que c’est fini. Simple.
Problème, il semblerait qu’il n’y ait aucun moyen d’envoyer des notifications ou de faire vibrer un appareil quand le navigateur n’est pas au premier plan, ou l’appareil verrouillé. Ça perd tout de même un peu tout son intérêt, vu que les seuls cas restant étant ceux où l’utilisateur a le site sous les yeux. À part pour des effets (pour les vibrations), super utile !…
(Testé sur Firefox et Chrome sur Android — ce dernier ne supporte pas du tout les notifications d’ailleurs)
J’ai fouillé le web sans trouver grand chose pour contourner (si ce n’est « fait une application Android », lel nope). Mais à tout hasard, peut-être que j’ai raté une option obscure pour envoyer des notifications ou des vibrations lorsque le site n’est pas au premier plan. Peut-être, dans le cas des premières, via l’API Push ? Du moins s’il est possible de s’en servir 100% en local… ce qui serait un usage assez détourné.
Merci d’avance pour toute réponse .
Ce n’est pas directement utile, mais à titre indicatif, voilà ce que j’utilise pour envoyer les notifications / vibrations. C’est un usage tout basique et direct de l’API.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // À la première interaction avec un compteur if ("Notification" in window) Notification.requestPermission(); // Plus tard, au bon moment. // Dans un setInterval en l'occurrence, mais on s'en moque en pratique. if ("Notification" in window) { var notification = new Notification(title, { lang: 'fr', body: notification_body, renotify: true }); } if ("vibrate" in window.navigator) { window.navigator.vibrate([200, 100, 200]); } |