I have an App which constantly polls for location when its in travelling mode. My issue is that once the screen is locked, the App can no longer access the geolocation from the
Another option is to use a partial wakelock on Android to keep your app alive while in the background (screen off or switched out of foreground). You'd need to do this via a plugin, but it would have the same effect as a background service, keeping you app alive to receive location updates while in the background.
See my old answer here for the source code for a Cordova 2.0 plugin (it will need updating for Cordova 3+).
Have you looked at NG-Cordova?
first add ng-cordova to your project:
bower install ngCordova
or
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
Then inject it:
angular.module('myApp', ['ngCordova'])
Here is a plugin you could try: http://ngcordova.com/docs/plugins/backgroundGeolocation/
just install the plugin:
cordova plugin add https://github.com/christocracy/cordova-plugin-background-geolocation.git
then bind it to a controller:
module.controller('MyCtrl', function($scope, $cordovaBackgroundGeolocation) {
var options = {
// https://github.com/christocracy/cordova-plugin-background-geolocation#config
};
document.addEventListener("deviceready", function () {
// `configure` calls `start` internally
$cordovaBackgroundGeolocation.configure(options)
.then(
null, // Background never resolves
function (err) { // error callback
console.error(err);
},
function (location) { // notify callback
console.log(location);
});
$scope.stopBackgroundGeolocation = function () {
$cordovaBackgroundGeolocation.stop();
};
}, false);
});