2016-09-07 5 views
1

Ich baue eine App, bei der ich den Standort des Benutzers ermitteln muss. Dazu habe ich ein Ereignis, klicken Sie auf eine Schaltfläche angebracht, die dannGeolocation in Safari 9 immer wieder Position Nicht verfügbar

nennt
navigator.geolocation.getCurrentPosition(getVenues, handleError); 

Dies als auf Chrome und Firefox erwartet funktioniert, und die getVenues Funktion ausgeführt wird, nachdem ich Zugriff auf meine Lage gewähren. In Safari wird nach dem Gewähren von Zugriff sofort die handleError-Funktion aufgerufen.

Dies geschieht auf meinem lokalen und Produktionsserver, die beide HTTPS verwenden. Mein Computer hat eine WLAN-Verbindung. Safari Version 9.1.2 (11601.7.7). Ich habe einige der anderen Posts über Geolocation in Safari gelesen und keine der Lösungen hat bisher funktioniert.

Ich habe versucht, Optionen getCurrentPosition zu übergeben, um die timeout und maximumAge aber ohne Glück zu erhöhen.

Hier ist mein vollständiges Codebeispiel:

$("#nearby-find").on('click', function() { 
    navigator.geolocation.getCurrentPosition(getVenues, handleError); 
}); 

var getVenues = function(position) { 
    console.log(position); 
}; 

var handleError = function(error) { 
    console.log(error); 
} 

Einen Klick auf die Schaltfläche wird die Geolokalisierung Zugriffsanforderung aber sofort nach dem Klicken auf übernehmen Sie die handleError Funktion mit einem Fehlercode von 2 (Position nicht verfügbar) aufgerufen wird.

Gibt es andere Probleme/Bugs/Fehler mit Safari Geolocation muss ich überprüfen?

+0

Anscheinend gibt es Sicherheitspräferenzen, die das verursachen können; Sind Sie sicher, dass die "Ortungsdienste" aktiviert sind? Abgesehen davon muss der Code für Geolocation in der Lage sein, Fehler trotzdem zu behandeln, da die Leute "Nein" zu dem Popup sagen könnten. – Pointy

+0

Wow, Safari war nicht in der Liste der Ortungsdienste aktiviert. Ist dies die Standardeinstellung - dass Safari explizit Zugriff auf die Standortdienste über die Einstellungen gewährt werden muss? –

+0

Ich denke; Ich bin kein Mac-Benutzer. Ich habe gerade gegoogelt :) – Pointy

Antwort

0

Safari befindet sich nicht in der Liste der Anwendungen in der Liste "Standortdienste aktivieren" in den Systemeinstellungen. Sie müssen in Systemeinstellungen> Sicherheit & Datenschutz> Datenschutz-Registerkarte gehen und sicherstellen, dass Safari in der Liste der Standortdienste aktiviert ist.

enter image description here

Verwandte Themen