Sensor

J’avais depuis quelques années l’idée de jouer avec l’API Ambiant Light ; eh bien je m’aperçois que c’est mal voire pas supporté du tout. J’ai fait quelques tests avec cette démo proposée (en 2014) par Aurelio De Rosa et ça ne fonctionne nulle part.

Peut-être que le code nécessaire a changé depuis, va falloir que je vérifie ça, ou alors ce n’est pas actif, voire pas shippé dans les navigateurs. Pour l’instant le code proposé dans la démo est celui-ci (partie javascript uniquement) :

function updateLightLevel(lightLevel) {
   document.getElementById('dl-value').innerHTML = Math.round(lightLevel);

   if (lightLevel < 50) {
      document.body.className = 'dark-theme';
   } else if (lightLevel < 10000) {
      document.body.className = 'classic-theme';
   } else {
      document.body.className = 'light-theme';
   }
}

var isOldApiSupported = 'ondevicelight' in window;
var isNewApiSupported = 'AmbientLightSensor' in window;

if (!isOldApiSupported && !isNewApiSupported) {
   document.querySelector('.js-api-support').removeAttribute('hidden');
   document.querySelector('.js-api-info').setAttribute('hidden', '');
} else if (isOldApiSupported) {
   document.querySelector('.js-old-api-support').removeAttribute('hidden');

   window.addEventListener('devicelight', function(event) {
      updateLightLevel(event.value);
   });
} else {
   document.querySelector('.js-api-support').removeAttribute('hidden');

   var sensor = new AmbientLightSensor();

   sensor.start();
   sensor.addEventListener('change', function(event) {
      updateLightLevel(event.reading.illuminance);
   });
}

Je viens d’essayer sur mobile (iOS), c’est pas mieux !

Chez vous la démo fonctionne ?

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13837

Haut de page