Background Geolocation
This plugin provides foreground and background geolocation with battery-saving "circular region monitoring" and "stop detection". For more detail, please see https://github.com/mauron85/cordova-plugin-background-geolocation
https://github.com/mauron85/cordova-plugin-background-geolocation
Stuck on a Cordova issue?
If you're building a serious project, you can't afford to spend hours troubleshooting. Ionic’s experts offer premium advisory services for both community plugins and premier plugins.
Installation#
- Capacitor
- Cordova
- Enterprise
$ npm install @mauron85/cordova-plugin-background-geolocation $ npm install @ionic-native/background-geolocation $ ionic cap sync
$ ionic cordova plugin add @mauron85/cordova-plugin-background-geolocation $ npm install @ionic-native/background-geolocation
Ionic Enterprise comes with fully supported and maintained plugins from the Ionic Team. Learn More or if you're interested in an enterprise version of this plugin Contact Us
#
Supported Platforms- Android
- iOS
#
Usage#
ReactLearn more about using Ionic Native components in React
#
AngularBackgroundGeolocation must be called within app.ts and or before Geolocation. Otherwise the platform will not ask you for background tracking permission.
import { BackgroundGeolocation, BackgroundGeolocationConfig, BackgroundGeolocationEvents, BackgroundGeolocationResponse } from '@ionic-native/background-geolocation/ngx';
constructor(private backgroundGeolocation: BackgroundGeolocation) { }
...
const config: BackgroundGeolocationConfig = { desiredAccuracy: 10, stationaryRadius: 20, distanceFilter: 30, debug: true, // enable this hear sounds for background-geolocation life-cycle. stopOnTerminate: false, // enable this to clear background location settings when the app terminates };
this.backgroundGeolocation.configure(config) .then(() => {
this.backgroundGeolocation.on(BackgroundGeolocationEvents.location).subscribe((location: BackgroundGeolocationResponse) => { console.log(location);
// IMPORTANT: You must execute the finish method here to inform the native plugin that you're finished, // and the background-task may be completed. You must do this regardless if your operations are successful or not. // IF YOU DON'T, ios will CRASH YOUR APP for spending too much time in the background. this.backgroundGeolocation.finish(); // FOR IOS ONLY });
});
// start recording locationthis.backgroundGeolocation.start();
// If you wish to turn OFF background-tracking, call the #stop method.this.backgroundGeolocation.stop();