Les navigateurs possèdent tout un tas de petites fonctionnalités qui permettent d'interagir avec l’environnement du device, et ce, grâce à Javascript.

Les Web API JavaScript

Il est par exemple possible de récupérer des informations de l’état de la connexion internet, d’envoyer des notifications push, détecter le niveau de batterie, etc. Le tout est généralement accessible grâce à de simples petites (mais puissantes) fonctions exposées par Javascript.

Bien souvent, certaines de ces API sont expérimentales et ne sont pas totalement implémentées à travers tous les navigateurs du marché. C’est pourquoi il est important de vérifier la compatibilité sur les sites “MDN” ou “Can I Use” avant de se lancer tête baissée sur une implémentation.

Nous vous proposons ici un aperçu (non exhaustif) en passant en revue 8 API que nous avons sélectionnées.

À noter : Même si nous ne le préciserons pas à chaque fois, pour des raisons de sécurité certaines de ces API ne fonctionnent qu'après une interaction par l’utilisateur. Par exemple, l’API Share peut être exécutée via un callback lors du clic sur un bouton.

Clipboard API

L'API Clipboard permet d'interagir à plusieurs niveaux avec le presse-papiers : couper, copier et coller ; et donc également lire et écrire dans ce presse-papiers.

Le navigateur expose un objet “clipboard” dans la variable globale “navigator”, qui contient plusieurs fonctions.

Pour ajouter du texte dans le presse-papiers (qui pourra donc être “collé” par l’utilisateur), il suffit d’appeler la fonction “writeText” en passant en argument le texte que vous voulez “copier” :

Les Web API JavaScript

À l’inverse, vous pouvez également lire le contenu qui a été “copié” par un utilisateur via la fonction “readText” :

Les Web API JavaScript

Share API

L'API Share fournit des fonctions permettant de partager du texte et/ou des fichiers vers une cible de partage (une autre application par exemple) qui serait sélectionnée par l'utilisateur. Cette API permet d’ouvrir l’interface de partage en place sur votre device.

Vous pouvez commencer par initialiser les donnés à partager sous cette forme :

Les Web API JavaScript

Ensuite, la fonction “canShare” permet de valider le contenu avant de le partager :

Les Web API JavaScript

Finalement, vous pourrez partager vos données avec la fonction “share” :

Les Web API JavaScript

Screen Wake Lock API

L'API Screen Wake Lock permet d'empêcher les appareils d'assombrir ou de verrouiller l'écran (de passer en veille donc) lorsqu'une application doit continuer à fonctionner. Cela signifie que si votre appareil est configuré pour passer en veille au bout de 30 secondes, cette API vous permet de garder l’écran actif au-delà de ces 30 secondes.

Pour activer cette API, il suffit d’appeler la fonction “request” de l'objet “wakeLock” :

Les Web API JavaScript

Si vous voulez désactiver le wakeLock précédemment initialisé, il faut alors appeler la fonction “release” :

Les Web API JavaScript

Battery Status API

L'API Battery Status permet d'obtenir des informations sur le niveau de charge de la batterie du système, mais également d’écouter les changements de statut ou de niveau de batterie pour réagir en conséquence.

Vous pouvez récupérer l’état de la batterie avec la fonction “getBattery” qui vous retourne tout un tas d’informations :

  • charging” : Booléen indiquant si la batterie est en cours de chargement
  • chargingTime” : Nombre représentant le temps avant que la batterie ne soit complètement chargée
  • dischargingTime” : Nombre représentant le temps avant que la batterie ne soit complètement déchargée
  • level” : Niveau de batterie entre 0 et 1

Les Web API JavaScript

Vous pouvez également ajouter des “event listener” afin d’écouter les changements de la batterie :

Les Web API JavaScript

Idle Detection API

L'API Idle Detection permet de détecter l'état d'inactivité d’un utilisateur (actif ou inactif) et de son écran (verrouillé ou déverrouillé), et d'écouter les modifications apportées à cet état d'inactivité.

Pour accéder à cette API, l’utilisateur doit avoir autorisé son utilisation :

Les Web API JavaScript

Ensuite, il suffit de créer une nouvelle instance de “IdleDetector” puis d’écouter l'événement “change” pour récupérer les nouveaux états :

Les Web API JavaScript

Network Information API

L'API Network Information permet d’obtenir des informations sur la connexion du système : type de connexion (wifi, cellulaire, etc.), vitesse du débit, etc.

Vous pouvez récupérer les informations dans l'objet “connection” :

  • downlink” : Débit de la bande passante estimé
  • effectiveType” : Type de connexion internet estimé (“slow-2g”, “2g”, “3g”, ou “4g”)
  • rtt” : Le “round-trip time” estimé
  • saveData” : “true” si l’utilisateur à un mode de réduction de données activé (basé sur le “user agent”)

Les Web API JavaScript

Geolocation API

La Geolocation API permet d’obtenir la localisation de l’utilisateur de l’application web : coordonnées GPS, précisions de ses coordonnées et la date de cette dernière position GPS connue.

La fonction “getCurrentPosition” de l’objet “geolocation” permet de retourner, via son premier paramètre (un callback), les informations sur la position GPS dont la latitude et la longitude. Bien sûr, lorsque vous exécutez cette fonction, il sera demandé à l’utilisateur de valider qu’il souhaite partager sa localisation avec le navigateur.

Les Web API JavaScript

Broadcast Channel API

La Broadcast Channel API permet à différents contextes d’un navigateur (pourtant distincts) de pouvoir communiquer entre eux : les fenêtres, les onglets, les workers ou encore les iframes.

L’idée est d’ouvrir un tunnel commun pour que chaque contexte qui y est connecté puisse envoyer des messages et écouter la potentielle arrivée d’autres messages.

Un nouveau tunnel s’ouvre avec une nouvelle instance de l'objet “BroadcastChannel” en lui fournissant un identifiant de chanel, un message peut ensuite y être envoyé :

Les Web API JavaScript

D’un autre coté, l'événement peut être écouté et traité :

Les Web API JavaScript

Si le canal ouvert n’est plus utile, il est possible de le fermer :

Les Web API JavaScript

Chez Next Decision, fort de notre expérience en développement d’applications web métier, nous sommes en mesure de répondre à vos besoins de développement spécifique tout en intégrant des API JavaScript modernes.

Nos développeurs Next Decision ont les compétences techniques et les environnements de travail parfaits pour répondre à vos besoins sur Javascript. Contactez-nous et échangeons sur votre projet !