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 ?
1 De saymonz -
La démo fonctionne sur mon mobile (Galaxy S6/Firefox). La page indique toujours “lightevent event not supported” mais le chiffre “current light” bouge et le fond change en basse lumière. La ligne “current state” ne bouge pas (null).
Sur mon PC, rien. D’après https://developer.mozilla.org/fr/do… c’est normal, ça ne serait supporté que par Firefox sur MacOS.
2 De Franck -
Merci pour le retour !