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