Я хочу сохранить информацию о состоянии батареи устройства в базе данных, когда каждый раз, когда пользователь входит и выходит из приложения IONIC 3 - PullRequest
0 голосов
/ 07 ноября 2018

Я могу узнать состояние батареи с помощью батареи

getBatteryStatus() {
    // watch change in battery status
    this.subscription = this.oBatteryStatus.onChange().subscribe(
      (status: BatteryStatusResponse) => {
        this.currentBatteryLevel = status.level;
        this.currentBatteryIsPlugged = status.isPlugged;

        this.oUser_log_model.user_id = this.loggedInUserId;
        this.oUser_log_model.user_device_battery_status = this.currentBatteryLevel;
        this.oUser_log_model.user_device_battery_is_plugged = this.currentBatteryIsPlugged;

        this.oAngularFireDatabase.database.ref('User_Log').set(this.oUser_log_model).then(() => {
          let toast3 = this.oToastController.create({
            message: 'Successfully Saved..',
            duration: 3000,
            position: 'top',
            cssClass: 'dark-trans',
            closeButtonText: 'OK',
            showCloseButton: true
          });
          toast3.present();
        })

      });
  }

если я вызываю эту функцию при нажатии кнопки, она работает нормально. но я хочу вызывать эту функцию каждый раз, когда пользователь входит в приложение и выходит из приложения. Я пытался вызвать эту getBatteryStatus() функцию в initializeApp() функции. Но она не сохраняет состояние батареи в базе данных.

initializeApp() {
    this.platform.ready().then(() => {
     // I HAVE  TRIED TO CALL GET BATTERY STATUS FUNCTION FROM HERE
      // watch network for a disconnect
      let disconnectSubscription = this.oNetwork.onDisconnect().subscribe(() => {
        let toast = this.oToastController.create({
          message: 'You are offline ..',
          duration: 3000,
          position: 'top',
          cssClass: 'dark-trans',
          closeButtonText: 'OK',
          showCloseButton: true
        });
        toast.present();
      });

      // watch network for a connection
      let connectSubscription = this.oNetwork.onConnect().subscribe(() => {
        let toast = this.oToastController.create({
          message: 'Get back to online .. ',
          duration: 3000,
          position: 'top',
          cssClass: 'dark-trans',
          closeButtonText: 'OK',
          showCloseButton: true
        });
        toast.present();
        // We just got a connection but we need to wait briefly
        // before we determine the connection type. Might need to wait.
        // prior to doing any api requests as well.
        setTimeout(() => {
          if (this.oNetwork.type === 'wifi') {
            let toast = this.oToastController.create({
              message: 'Connected to the wifi',
              duration: 3000,
              position: 'top',
              cssClass: 'dark-trans',
              closeButtonText: 'OK',
              showCloseButton: true
            });
            toast.present();
          }
        }, 3000);
      });
      // this.statusBar.styleDefault();
      this.statusBar.styleLightContent();
      this.splashScreen.hide();
    });
  }
...