2016-04-06 2 views
1

Ich habe eine Cordova App und das erste, was es tut, ist den Benutzer Standort zu überprüfen, wenn die App gestartet wird. Das Problem ist, dass das Geolocation-Plug-in nicht darauf wartet, dass der Benutzer Ja oder Nein zu dem Geo-Berechtigungsdialog sagt, den iOS aufruft, wenn der Benutzer die App das erste Mal startet (unter iOS).Cordova Geolocation, warten auf Benutzerberechtigungen

Gibt es trotzdem ich kann diese Plugin-Funktion warten auf den Benutzer zu sagen, erlauben oder nicht zulassen für die Geo-Berechtigungen?

Plugin in Frage https://github.com/apache/cordova-plugin-geolocation

Beispiel Funktionsaufruf:

navigator.geolocation.getCurrentPosition(geolocationSuccess,geolocationError,geolocationOptions); 

Wenn ich die app zum ersten Mal starten bekomme ich die iOS Berechtigungen prompt, aber ich kann in dem Hintergrund, dass der Funktionsaufruf sehen ist schon in die Fehlerfunktion gefallen.

Jede Hilfe würde sehr geschätzt werden.

+0

Ich habe das gleiche Problem hier und ich weiß nicht, wie alles versucht zu reparieren ... –

+0

@FernandoZamperin Haben Sie es geschafft, am Ende eine Lösung zu finden? –

+0

Ja, ich finde eine Lösung, ich frage nur nach der Erlaubnis auf Plattform bereit und dann, wenn ich gehe, um die Lage zu bekommen, funktioniert es perfekt! Versuchen Sie dieses Plugin ist einfach zu verwenden https://github.com/dpa99c/cordova-diagnostic-plugin#requestlocationauthorization –

Antwort

1

Es Modifikation in plist braucht bitte unten Schritte ausgeführt haben, unter Schritten soll vor dem Hinzufügen von ur-Plattform in cordova folgen:

Schritt 1:

add NSLocationWhenInUseUsageDescription to the .plist. Open /platforms/ios/{project}/{project}-Info.plist 

Schritt 2: Fügen Sie unter

<key>NSLocationWhenInUseUsageDescription</key> 
<string>[App Name] would like to access your location when running and displayed.</string> 
+0

auch chk dies: http://stackoverflow.com/questions/28891339/fix-cordova-geolocation-ask-for -location-message/30742592 – KOTIOS

+0

Ah, perfekt! Ich dachte, es wäre eine Javascript-Lösung oder etwas, nicht etwas im eigentlichen Build. –

+1

Das Problem ist jetzt, das scheint nur eine benutzerdefinierte Nachricht zu sein. Es führt immer noch den Timer nach dem Timeout hinter der Nachricht aus und dann wird der Fehler nach dem Timer ablaufen. –