2017-03-09 61 views
5

Mam następujący kod przy użyciu Ionic Native Geolocation:Ionic Native Geolokalizacja nie działa na Androidzie

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); 
      }); 
    }); 

Kiedy uruchomić to jako ionic serve w przeglądarce, albo ja go zbudować i uruchomić go na iOS Simulator (Xcode), to działa . Jednak, kiedy skompiluję to dla Android i spróbuję go uruchomić, pierwsze ostrzeżenie zostanie wyrzucone, ale nie drugie.

Oznacza to, że tylko dla Android, Geolocation.getCurrentPosition... nie działa.

Mam kolejną stronę, która może renderować mapę przez this.map = new google.maps.Map(htmlElement, mapOptions);, więc wygląda na to, że problem polega na uzyskaniu aktualnej pozycji. Kiedy zainstalować aplikację, ja rozumiem ten komunikat jednakże:

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

Do którego klikam Allow.

Czy ktoś wie, co robię niepoprawnie, lub jeśli brakuje niektórych kroków w procesie instalacji i instalacji systemu Android?

Dzięki

+0

Używam tego przez jakiś czas i zadziałało. Teraz już nie działa. Brak zmian w kodzie. Myślę, że twój kod jest w porządku, ale myślę, że coś innego jest niestabilne. SOOOOOOO frustrujące. Nie ma czasu na nic – Harry

Odpowiedz

3

Ok, więc ja zmagali się z tym przez pewien czas teraz. Czasami to działa, czasami nie. Spróbuj dodać opcje do niego:

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

Te następujące kroki wystarczyły do ​​mnie:

Zainstaluj dwa najnowsze jonowych CLI wtyczki:

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

Następnie zainstalować wtyczkę geolokalizacji:

npm install @ionic-native/geolocation --save 
ionic cordova plugin add cordova-plugin-geolocation 

Następnie usuń folder "/ node_modules" i wyczyść pamięć podręczną npm:

rm -rf node_modules/ 
npm cache clean --force 

I wreszcie ponownie zainstaluj pakiety:

npm install 

nadzieję, że pomoże ktoś :)

0

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

to wydawać uruchomić geolokalizacji, ale nie może złapać lat i lng return {}