Background geolocation plugin for ionic isn't updating. The functionality I want is every 30 seconds ask the plugin for a lat lng value if available. The issue is, it's only giving me the values initially and then the background stops. The foreground is fine, it's really the background. Basically I'm not able to send the requests after the first initial send in the background.
gps.ts
startTracking() {
console.log("started tracking");
const config: BackgroundGeolocationConfig = {
desiredAccuracy: 10,
stationaryRadius: 20,
distanceFilter: 30,
debug: false, // enable this hear sounds for background-geolocation life-cycle.
stopOnTerminate: false
};
this.backgroundGeolocation
.configure(config)
.subscribe((location: BackgroundGeolocationResponse) => {
this.zone.run(() => {
this.lat = location.latitude;
this.lng = location.longitude;
this.bearing = location.bearing;
this.speed = location.speed;
this.accuracy = location.accuracy;
this.timestamp = location.time;
});
this.backgroundGeolocation.finish(); // FOR IOS ONLY
this.backgroundGeolocation.stop();
});
this.backgroundGeolocation.start();
}
sendGPS() {
this.optionsService.sendGPS(gpsData).subscribe(result => {});
}
stopTracking() {
this.sendGPS();
}
app.component.ts
constructor() {
this.sendGPSStart();
this.interval();
}
sendGPSStart() {
this.locationTracker.startTracking();
}
sendGPSStop() {
this.locationTracker.stopTracking();
}
interval() {
setInterval(() => {
this.sendGPSStart();
this.sendGPSStop();
}, "30000");
}