Goal
I would like to access the current battery status in an Ionic 4 / Angular + Cordova application.
What I have tried
I followed the instruction https://ionicframework.com/docs/native/battery-status on a clean blank Ionic 4 app.
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { BatteryStatus } from '@ionic-native/battery-status/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
providers: [
StatusBar,
SplashScreen,
BatteryStatus,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
home.page.ts
import { Component } from '@angular/core';
import { BatteryStatus } from '@ionic-native/battery-status/ngx';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss']
})
export class HomePage {
constructor(private batteryStatus: BatteryStatus) {
// watch change in battery status
const subscription = this.batteryStatus.onChange().subscribe(status => {
console.log(status.level, status.isPlugged);
});
}
}
The Problem
Sadly I always get the following error, anyone an idea what I’m doing wrong?
Error
ERROR TypeError: Invalid event target
at setupSubscription (fromEvent.js:50)
at Observable._subscribe (fromEvent.js:24)
at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (Observable.js:43)
at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:29)
at new HomePage (home.page.ts:12)
at createClass (core.js:22150)
at createDirectiveInstance (core.js:22029)
at createViewNodes (core.js:23255)
at createRootView (core.js:23169)
at callWithDebugContext (core.js:24177)