1
votes

Problème avec l'état de la batterie dans Ionic 4

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


1 commentaires

Voici mes informations ioniques pastebin.com/TZ8qxx8n


3 Réponses :


1
votes

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é> XXX


0 commentaires

1
votes

Voici 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);
}


0 commentaires

0
votes

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.


0 commentaires