2017-12-20 9 views
1

Ich habe alle Links zu diesem Problem besucht und keiner hat mir geholfen.Cordova Plugin Geolocation Timeout auf IOS 11

Ich bekomme den Fehlercode 3 (Timeout) als Antwort immer, wenn die Methode "getCurrentLocation" von "cordova-plugin-geolocation" auf IOS ausgeführt wird.

folgen meinem Code:

getCurrentPosition() { 
return new Promise(function (resolve, reject) { 
    document.addEventListener("deviceready", function(){ 
    navigator.geolocation.getCurrentPosition((position) => { 
     resolve(position); 
    }, (error) => { 
     reject(error); 
    }, { 
     timeout: 10000 
    }); 
    }, false); 
}); 
} 

Ich habe ein Upgrade alle Plugins und Motoren und der Fehler bestehen blieb. Folge meinen aktuellen Versionen:

  • cordova 8.0.0;
  • cordova-ios 4.5.4;
  • cordova-android 7.0.0;
  • cordova-plugin-geolocation 4.0.0.
+0

Haben Sie schon versucht maximumAge> 0 zu setzen? Möglicherweise befinden Sie sich in einer Umgebung, in der Ihr Gerät direkt nach dem Start der App keine neue Position erwerben kann. Also, wenn ich du wäre, würde ich es mindestens auf 10000 (10 Sekunden) setzen, um diesem Plugin zu sagen, dass 10 Sekunden alte Coords zum Beispiel erlaubt sind. – Blauharley

+0

Ja, ich habe diesen Test bereits gemacht. aber immer noch der gleiche Fehler. Ich habe festgestellt, dass in IOS kein Berechtigungsfenster angezeigt wird und in den Standortberechtigungseinstellungen nichts über die App angezeigt wird –

Antwort

1

Nach der harten Arbeit fand ich die Lösung. Ich fügte hinzu, die folgen Schlüssel in "/platform/ios/{project_name}/{project_name}-Info.plist":

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key> 
<string>My app requires constant access to your location, even when the screen is off.</string> 
<key>NSLocationWhenInUseUsageDescription</key> 
<string>My app requires constant access to your location, even when the screen is off.</string> 
Verwandte Themen