Hice un programa que mostraría el nivel de la batería y la carga en un div. Mi código está abajo. Por alguna razón, cuando lo ejecuto, me dice que navigator.getBattery no es una función. ¿Cómo puedo arreglar esto?
function batttick() { navigator.getBattery().then( a=>{ let m = "" let c = "" m = battery.level * 100 + "%" if(a.charging) { m+=" ⚡"; c = "green"; } console.log(c, m); document.getElementById("batt").innerHTML = m; document.getElementById("batt").style.color = c; }) } batttick()El error que está recibiendo no aparece cuando se ejecuta en Google Chrome (versión 100).
Parece que algunos navegadores no son compatibles con navigator.getBattery() . Consulte la compatibilidad del navegador en MDN o consulte la tabla a continuación.
| Navegador | Versiones |
|---|---|
| Cromo | ✅ (>38) |
| Borde | ✅ (>79) |
| Firefox | ❌ (43-52) |
| ES DECIR | ❌ (sin soporte) |
| Ópera | ✅ (>25) |
| Safari | ❌ (sin soporte) |
Clave: ✅ = Compatible, ❌ = No compatible.
Si nota que el navegador que está utilizando no es compatible, debe actualizarlo o cambiarlo, ejecutar el código y debería funcionar entonces.
Además, otro problema en su código es que está tratando de obtener el nivel de battery.level , cuando battery no existe. Es probable que esto arroje un error.
Parece que desea utilizar el objeto BatteryManager devuelto, en este caso, a archivo . Entonces, para solucionarlo, simplemente use el código a continuación.
const m = a.level * 100 + "%"; Esto ahora está obteniendo la propiedad de level de la variable a ya definida. Cuando cambie su código a esto, debería funcionar correctamente.
Tuvo un problema en el que estaba usando una variable a pero estaba haciendo referencia a battery . Ver mis ediciones y demostración de trabajo:
function batttick() { navigator.getBattery().then(battery => { let m = "" let c = "" m = battery.level * 100 + "%" if (battery.charging) { m += " ⚡"; c = "green"; } console.log(c, m); document.getElementById("batt").innerHTML = m; document.getElementById("batt").style.color = c; }) } batttick() <div id="batt"></div>