navigator.geolocation.getCurrentPosition obtient toujours un délai d'attente dans Android jusqu'à ce que GPS / Location soit désactivé
app.controller('dashboard', function($scope){
$scope.getPosition = function(position){
$scope.acc = position.coords;
$scope.lat = position.coords.latitude;
$scope.lng = position.coords.longitude;
$scope.$apply();
};
$scope.getPositionErr = function(error){
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
};
navigator.geolocation.getCurrentPosition($scope.getPosition, $scope.getPositionErr, {maximumAge: 0, timeout: 6000, enableHighAccuracy:false});
});
Je suis en utilisant Angular JS et Cordova pour une application Android.
Ce code fonctionne très bien sur le bureau mais pas sur le Nexus 4 avec Lollipop.
Aussi contrôleur de code est en cours d'exécution après deviceready selon l'exigence de Cordova
J'ai essayé
- Réglage HighAccuracy de faux
- Retrait de la géolocalisation plugin afin qu'il utilise par défaut l'emplacement de la Wifi
- Redémarrage de l'appareil
- De compensation cache du navigateur
- Mode avion on/off
- Wifi on/off
- De données mobiles sur/off
Mais je n'arrive pas à obtenir lat, long de géolocalisation et obtient toujours timeout.
Il ne fonctionne que quand je l'ai activé la Localisation/GPS de réglage. Après l'activation de ce code fonctionne comme prévu.
source d'informationauteur Nat Geo
Vous devez vous connecter pour publier un commentaire.
navigator.la géolocalisation.getCurrentPosition est seulement pour le GPS lorsque l'option "enableHighAccuracy" est réglé sur true(valeur par défaut). C'est pourquoi vous n'êtes pas en mesure d'obtenir de l'emplacement actuel à l'aide d'un dispositif mobile. À propos de "c'est un travail sur le bureau", je crois que vous devez avoir ouvert réglage du GPS dans votre navigateur.
D'habitude, j'ai utilisé le code ci-dessous, t o obtenir la position de n'importe GPS est ouvert ou pas.
D'autre part, vous pouvez définir enableHighAccuracy comme "faux".
J'avais identiques problème résolu pour moi