API web clients natives
Les API web clients natives sont des API qui sont intégrées directement dans les navigateurs web modernes, et qui permettent d’interagir avec des fonctionnalités du navigateur.
Il existe de nombreuses API web clients natives, qui permettent de réaliser des opérations variées, comme la géolocalisation, la manipulation des éléments audio et vidéo, etc.
Voici quelques exemples d’API web clients natives qui vous nous permettrent de nous familiariser avec la syntaxe et les fonctionnalités de ces API.
Géolocalisation
L’API de géolocalisation est une API web qui permet de récupérer la position géographique de l’utilisateur.
Pour utiliser l’API de géolocalisation, on peut utiliser l’objet navigator.geolocation
qui est disponible dans la plupart des navigateurs modernes.
Exemple
Bloc HTML :
1<div id="geo">2 Javascript doit être activé pour afficher la géolocalisation.3</div>
Code JavaScript :
1let geo = document.querySelector('#geo'); // On récupère l'élément avec l'id geo2
3if (geo) { // Si l'élément existe4 geo.innerHTML = ''; // On vide le contenu de l'élément5
6 if (!navigator.geolocation) { // Si la géolocalisation n'est pas disponible7 geo.appendChild(document.createTextNode('La géolocalisation n\'est pas disponible sur votre navigateur ou vous avez refusé la demande.'));8 } else {9 geo.innerHTML += 'La géolocalisation est disponible sur votre navigateur. <br/> J\'essaie de récupérer votre position. <br/> <br/>';10
11 navigator.geolocation.getCurrentPosition((position) => { // On récupère la position de l'utilisateur12
13 // On affiche les informations de géolocalisation14 geo.innerHTML += `15 Vous avez accepté la géolocalisation. <br/> <br/>16 L'API a renvoyé les informations suivantes : <br/>17 Latitude: ${position.coords.latitude}<br>Longitude: ${position.coords.longitude}`;18
19 },20 (error) => { // En cas d'erreur21 geo.innerHTML += `L'API de Geolocalisation a retourné l\'erreur suivante : ${error.message}`;22 });23 }24}
Résultat :
Javascript doit être activé pour afficher la géolocalisation.
HTMLMediaElement (Video et Audio)
L’API HTMLMediaElement permet de manipuler des éléments audio et vidéo dans une page web.
Vidéo
Code HTML :
1<video controls>2 <source src="fish-toy.mp4" type="video/mp4" />3 <source src="fish-toy.webm" type="video/webm" />4 <p>5 Votre navigateur ne peut pas lire les vidéos.6 <a href="fish-toy.mp4">Vous pouvez visiter ce lien direct.</a>7 </p>8</video>
Résultat :
Audio
1<audio id="audio-player" controls>2 <source src="horse.mp3" type="audio/mpeg" />3 Votre navigateur ne supporte pas la balise audio4</audio>
Résultat :
L’API offre des fonctions pour intéragir avec les éléments audio et vidéo, comme par exemple :
play()
: pour démarrer la lecturepause()
: pour mettre en pause la lecturevolume
: pour régler le volume
Résultat :
Code :
1const audio = document.getElementById('audio-player'); // Récupérer l'élément audio2
3if (audio) {4
5 const audioControls = document.getElementById('audio-controls'); // Récupérer l'élément audio-controls qui contiendra les boutons6
7 // Créer un objet contenant les textes des boutons8 let buttons = {9 play: "Jouer",10 pause: "Pause",11 volumeMoins: "Volume -",12 volumePlus: "Volume +",13 };14
15 // Créer un élément p qui contient un span pour afficher le volume16 let volumeP = document.createElement('p');17 volumeP.textContent = 'Volume : ';18
19 let volume = document.createElement('span');20 volume.id = 'audio-volume';21 volume.textContent = Math.round(audio.volume * 100);22 volumeP.appendChild(volume);23
37 collapsed lines
24
25 //ajouter les boutons au container audioControls26 for (let key in buttons) {27 let button = document.createElement('button');28 button.textContent = buttons[key];29 button.id = key;30 audioControls.appendChild(button);31
32 // Ajouter un event listener pour chaque bouton33 button.addEventListener('click', () => {34 switch (key) {35 case 'play':36 audio.play();37 break;38 case 'pause':39 audio.pause();40 break;41 case 'volumePlus':42 if (audio.volume < 1) {43 audio.volume += 0.1;44 }45 volume.textContent = Math.round(audio.volume * 100);46 break;47 case 'volumeMoins':48 if (audio.volume > 0) {49 audio.volume -= 0.1;50 }51 volume.textContent = Math.round(audio.volume * 100);52 break;53 }54 });55 }56
57 // Ajouter le paragraphe volumeP à audioControls58 audioControls.appendChild(volumeP);59
60}
Conclusion
Dans ces premiers exemples, nous avons vu qu’il est simple d’interagir avec des fonctionnalités du navigateur en utilisant des API web clients, que vous avez déjà probablement utilisées.
On peut retenir que :
- Les API web clients permettent d’interagir avec des fonctionnalités du navigateur, comme la géolocalisation, les éléments audio et vidéo, etc.
- Ces API sont accessibles (ou exposées) via des objets JavaScript, et sont documentées sur MDN.
- Les API web clients sont supportées par la plupart des navigateurs modernes, mais il est important de vérifier la compatibilité avant de les utiliser.
Passons maintenant à des exemples d’API tierces, qui ne sont pas natives au navigateur.