Phonegap la Géolocalisation ne fonctionne pas
Je suis en utilisant Phonegap.La géolocalisation pour obtenir la position actuelle de l'utilisateur.
Et j'ai trouvé cet exemple dans la documentation sur le site officiel.
Cependant, malgré le fait que onDevice prêt est exécutée, ni le succès, ni d'erreur de la fonction de rappel est exécutée. Et je suis vraiment confus par ce.
document.addEventListener("deviceready", onDeviceReady, false);
//Cordova is ready
//
function onDeviceReady() {
alert('deviceready');
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
//onSuccess Geolocation
//
function onSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
'Longitude: ' + position.coords.longitude + '<br />' +
'Altitude: ' + position.coords.altitude + '<br />' +
'Accuracy: ' + position.coords.accuracy + '<br />' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '<br />' +
'Heading: ' + position.coords.heading + '<br />' +
'Speed: ' + position.coords.speed + '<br />' +
'Timestamp: ' + position.timestamp + '<br />';
}
//onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que youryou installé la géolocalisation plugin (exécuter
phonegap local plugin add org.apache.cordova.geolocation
), et que le GPS est activé dans l'appareil.Ajouter un délai d'attente et de définir enableHighAccuracy:
Dans certains émulateurs, vous devez définir le enableHighAccuracy à false, alors essayez que si ne fonctionne toujours pas.
Si vous utilisez un émulateur Android, il ne lit pas de GPS valeurs, nous avons donc besoin de les envoyer via la ligne de commande. Nous avons besoin pour démarrer une session telnet sur le port que l'émulateur est en cours d'exécution (vous pouvez vérifier le port dans la fenêtre de l'émulateur titre, le numéro au début, dans mon cas 5554):
Puis exécutez la commande
Si vous fermez l'application, vous devez l'envoyer à nouveau la géolocalisation, donc si ça ne fonctionne pas, il suffit d'exécuter le
geo fix
commande juste après l'ouverture de l'application, avant que le délai événement se déclenche.cordova plugin add cordova-plugin-geolocation
En fait, il est de travail, toutefois, le lieu ne peut pas être déterminée dans un court laps de temps, donc il ne peut non plus être considéré comme un succès ni échec, et donc aucune action n'est effectuée.
Cela peut être géré par la fixation d'un délai pour le rappel de la Géolocalisation
Quand il y a un phonegap fonctionnalité ne fonctionne pas, vérifiez si l'autorisation correspondante dans l'application est définie. e.g pour l'accès à internet, ou géoposition sur android-périphérique de votre AndroidManifest.xml doit contenir les lignes suivantes:
Ok. J'ai trop eu du mal avec ce problème [c'est comment je suis arrivé à cette page]
Mais finalement il a travaillé. Je viens de faire sur changer:
J'ai modifié cette ligne : navigateur.la géolocalisation.getCurrentPosition(onSuccess, onError);
à ce navigateur.la géolocalisation.getCurrentPosition(onSuccess);
et le tout fonctionne maintenant.
Le problème est avec le navigateur.
Effacez le cache du navigateur et relancez-le.
src : http://community.phonegap.com/nitobi/topics/geolocation_works_with_one_android_device_but_not_another
Assurez-vous que vous avez inclus le javascript dans le corps plutôt que dans la section de la tête du code html. J'ai appris à la dure, après avoir trouvé aucun indice sur internet, donc pensé qu'il serait préférable de les partager. Il a travaillé comme un charme pour moi le plus vite possible, j'ai changé le code javascript à partir de
Si vous êtes à l'aide de PhoneGap et de Bureau ont pas d'accès direct à AndroidManifest.xml la solution est d'ajouter la permission configurations par adjonction de "config-file" de l'élément à config.xml.
Dans votre projet config.xml, ajoutez les lignes ci-dessous:
Aussi, assurez-vous de déclarer le android espace de noms xml dans le widget élément de votre config.xml:
Plus de détails ici: http://docs.phonegap.com/phonegap-build/configuring/config-file-element/