2017-03-09 4 views
5

Je le code suivant à l'aide Ionic Native Geolocation:ionique natif Géolocalisation ne fonctionne pas sur Android

import { Geolocation } from 'ionic-native'; 

    this.platform.ready().then(() => { 
     alert('loadMap about to getCurrentPosition'); 
      Geolocation.getCurrentPosition(options).then((position) => { 
     alert('loadMap getCurrentPosition'); 
      let latLng: google.maps.LatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
      bound.extend(latLng); 
      this.load(bound); 
      }); 
    }); 

Quand je lance cela comme ionic serve dans un navigateur, ou je le construis et l'exécuter sur iOS Simulator (Xcode), il fonctionne . Cependant, lorsque je construis ceci pour Android, et que j'essaie de l'exécuter, la première alerte est déclenchée, mais pas la seconde. Cela signifie que pour Android seulement, Geolocation.getCurrentPosition... ne fonctionne pas.

J'ai une autre page qui peut rendre une carte via this.map = new google.maps.Map(htmlElement, mapOptions);, donc il semble que le problème est d'obtenir la position actuelle. Quand j'installer l'application, je reçois ce message cependant:

Allow AppName to access the device's location? 
DENY ALLOW 

Pour que je clique Allow.

Est-ce que quelqu'un sait ce que je fais de façon incorrecte, ou s'il y a des étapes manquantes dans le processus d'installation et de construction Android?

Merci

+0

Je l'utilise depuis un moment et cela a fonctionné. Maintenant soudainement ça ne marche plus. Aucun code ne change. Je pense que votre code est bon, mais je pense que quelque chose d'autre est instable. SOOOOOOO frustrant. Pas de temps à rien – Harry

Répondre

3

Ok, donc j'ai lutté avec pendant un certain temps maintenant. Parfois ça marche, d'autres fois non. Essayez d'ajouter des options à elle:

let options = {timeout: 10000, enableHighAccuracy: true, maximumAge: 3600}; 
Geolocation.getCurrentPosition(options).then((resp) => { 
1

Ces étapes ont fait le truc pour moi:

Installez les deux derniers plugins ionique cli:

sudo npm install -g [email protected] 
npm install --save-dev --save-exact @ionic/[email protected] 
npm install --save-dev --save-exact @ionic/[email protected] 

Ensuite, installez le plugin géolocalisation:

Puis supprimez le dossier '/ node_modules' et nettoyez le cache de npm:
npm install @ionic-native/geolocation --save 
ionic cordova plugin add cordova-plugin-geolocation 
rm -rf node_modules/ 
npm cache clean --force 

Et enfin: réinstallez-les

npm install 

espère que ça va aider quelqu'un :)

0

let options = {timeout: 10000, enableHighAccuracy: true, maximumAge: 3600};

ce semble fonctionner, mais la géolocalisation ne peut pas attraper le retour lat et lng {}