gpt4 book ai didi

ios - 开始工作 Ionic + ngCordova + 后台地理定位

转载 作者:可可西里 更新时间:2023-11-01 06:14:33 24 4
gpt4 key购买 nike

应用程序的目标:在应用程序处于前台和后台时获取每次移动的地理位置并记录位置。

我已经尝试了很多代码和组合,但我无法让它工作(2 天后...)。

经典地理定位 (getCurrentPosition) 工作正常,但当我们关闭应用程序时,后台地理定位启动但没有任何反应......函数“callbackFn”从未被触发。

我正在使用 xcode 在 IOS 上进行测试 > 为后台事件激活音频和位置功能。我还使用了插件中给出的 jQuery 示例示例,所以我看到它可以工作,但从未使用过 ionic/angularjs。

这是处理后台的当前 Controller :

.controller('TestCtrl', function($scope, $timeout, $cordovaBackgroundGeolocation, $ionicPlatform, $window)
{
$scope.lat_geo = "loading lat...";
$scope.long_geo = "loading long...";


//-- Geolocal launch
var options = {
enableHighAccuracy : false,
desiredAccuracy: 0,
stationaryRadius: 1,
distanceFilter: 5,
notificationTitle: 'Background tracking', // <-- android only, customize the title of the notification
notificationText: 'ENABLED', // <-- android only, customize the text of the notification
activityType: 'AutomotiveNavigation',
debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
stopOnTerminate: false // <-- enable this to clear background location settings when the app terminates
};

$ionicPlatform.ready(function()
{
console.log("[IONIC PLATFORM IS NOW READY]");

//-- First launch a basic geolocalisation to get user acceptance of geosharing ;)
navigator.geolocation.getCurrentPosition(function(location) {
console.log('[GEOLOCAL JS1] Location from Phonegap');
},
function (error){
console.log('[GEOLOCAL JS1] error with GPS: error.code: ' + error.code + ' Message: ' + error.message);
},options);

//-- test adaptation depuis l'app jquery
var callbackFn = function(location) {
console.log('[BackgroundGeoLocation] Update callback: ' + location.latitude + ',' + location.longitude);
};

var failureFn = function(error) {
console.log('[BackgroundGeoLocation] Error: '+error);
};

$cordovaBackgroundGeolocation.configure(callbackFn, failureFn, options);

// Turn ON the background-geolocation system. The user will be tracked whenever they suspend the app.
$cordovaBackgroundGeolocation.start();

//-- Just a timeout to retreive long / lat
$timeout(function()
{
navigator.geolocation.getCurrentPosition(function(location)
{
console.log('[GEOLOCAL JS3] Location from Phonegap');
startPos = location;
$scope.$apply(function () {
$scope.lat_geo = startPos.coords.latitude;
$scope.long_geo = startPos.coords.longitude;
});
console.log("[GEOLOCAL BASIC] OK this time :)");
},
function (error){
console.log('[GEOLOCAL JS3] error with GPS: error.code: ' + error.code + ' Message: ' + error.message);
},options);
}, 3000);

});
//-- End Geolocal
})

我已经把我所有的代码(一个完整的 ionic app starter)放在了 github 上:https://github.com/Jeff86/ionic_ngcordova_backgroundgeo_test/tree/master

最佳答案

我读了这篇文章http://ngcordova.com/docs/plugins/backgroundGeolocation/

我看到你应该把你的代码放到

document.addEventListener("deviceready", function () { ... });

你找到任何解决方案了吗?

关于ios - 开始工作 Ionic + ngCordova + 后台地理定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com