Angularjs cordova ionic框架:获取位置后台服务
我试图获取当前用户位置,但当我重新加载代码时,它会发生变化,即使我希望每隔x秒获取一次位置。这是我的解决方案:Angularjs cordova ionic框架:获取位置后台服务,angularjs,cordova,service,location,ionic,Angularjs,Cordova,Service,Location,Ionic,我试图获取当前用户位置,但当我重新加载代码时,它会发生变化,即使我希望每隔x秒获取一次位置。这是我的解决方案: app.controller('geoCtrl', function($scope, $timeout, $cordovaBackgroundGeolocation, $ionicPlatform, $window, $cordovaGeolocation) { var posOptions = {timeout: 10000, enableHighAccuracy: false};
app.controller('geoCtrl', function($scope, $timeout, $cordovaBackgroundGeolocation, $ionicPlatform, $window, $cordovaGeolocation)
{
var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function (position) {
var lat = position.coords.latitude
var long = position.coords.longitude
alert('lat='+lat);
alert('long='+long);
}, function(err) {
// error
});
var watchOptions = {
timeout : 3000,
enableHighAccuracy: false // may cause errors if true
};
var watch = $cordovaGeolocation.watchPosition(watchOptions);
watch.then(
null,
function(err) {
// error
},
function(position) {
var lat = position.coords.latitude
var long = position.coords.longitude
});
watch.clearWatch();
//-- End Geolocal
})
但这只有在我启动应用程序时才起作用,有人知道吗?要帮助我同步应用程序以每x秒获取一次位置数据:)您可能需要的是:
app.controller('GeoCtrl', function($cordovaGeolocation, $interval) {
var posOptions = {
timeout: 10000,
enableHighAccuracy: false
};
var getLocation = function() {
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function(position) {
// location coordinates
console.log(position.coords);
})
.catch(function(err) {
// handle error
console.log(err)
});
};
$interval(getLocation, 3000); // 3 seconds for now
});
参考:您也可以使用$cordovaGeolocation.watchPosition。您不需要手动应用$interval。
但这两种解决方案在backgroundApp中都不起作用。看起来你在创建手表后立即清除了它……我想每隔30秒获取一次结果!!!谢谢你,这是解决办法:)谢谢你,非常非常马赫^^