J'utilise Ionic4 et j'essaie de connaître le niveau de la batterie de l'appareil. Mais j'obtiens une erreur: ERROR TypeError: Cible d'événement non valide et pour le niveau de la batterie, je suis indéfini.
Quelqu'un a-t-il rencontré le même problème
3 Réponses :
Il y a un rapport de bogue ouvert sur ionic: https: // github. com / ionic-team / ionic-native / issues / 2972
Malheureusement pas encore de solution, cependant il existe une solution de contournement pour contourner l'encapsuleur ionique et simplement écouter directement les événements de la fenêtre.
< pré> XXXVoici comment j'ai réussi à obtenir l'état de la batterie dans Ionic 4:
window.addEventListener('batterystatus', this.onBatteryStatus, false);
onBatteryStatus(status) {
console.log('Level: ' + status.level + ' isPlugged: ' + status.isPlugged);
}
Un moyen simple pourrait être comme ceci:
import { Platform } from 'ionic-angular';
import { BatteryStatus } from '@ionic-native/battery-status';
batterylevel = 0;
constructor(...
private batteryStatus: BatteryStatus,
private plt: Platform ) {}
ionViewDidEnter()
{
// Cordova check
if(this.plt.is('core') || this.plt.is('mobileweb'))
{
// NO. It's a browser.
// don't call the batery.
}
else
{
const batterysubscription = this.batteryStatus.onChange().subscribe(status => {
this.batterylevel = status.level;
});
}
}
yourfunction()
{
console.log(this.batterylevel);
}
Ensuite dans votre code:
$ ionic cordova plugin add cordova-plugin-battery-status $ npm install --save @ionic-native/battery-status@4
Vous devrez également l'ajouter à votre liste de fournisseurs également.
Bien sûr, cela ne fonctionnera que dans l'émulation ou un appareil.
Voici mes informations ioniques pastebin.com/TZ8qxx8n