Oto przybliżeniem mojego kodu:navigator.geolocation.getCurrentPosition(): wywołanie zwrotne pożaru, jeśli użytkownik mówi "nie"?
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function(position) {
// success!
},
function(error) {
// error
},
{ timeout: 10000 }
);
} else {
// your browser/device doesn't support geolocation
}
Gdy ten kod działa, przeglądarka poprawnie pyta użytkownika o zgodę na śledzenie ich fizycznej lokalizacji. Jeśli użytkownik mówi "Tak", poprawnie uruchamia funkcję określoną przez pierwszy argument ("sukces").
Dla mnie niejasne jest to, co dzieje się, gdy użytkownik mówi "nie". W moich testach do tej pory (w Firefoksie 7), jeśli użytkownik mówi "nie", nic się nie dzieje. Nie spodziewałem się, że uruchomi się wywołanie zwrotne błędu (druga funkcja), ale tak się nie stanie. Mam nadzieję, że zareaguję na negatywną odpowiedź użytkownika (przez usunięcie linku, który wyzwala to połączenie).
porządku, wygląda na to, Firefox nie zadziała ŻADNYCH zwrotnego jeśli dać odpowiedź „Nie teraz”: http://stackoverflow.com/questions/6932758/firefox-5-geolokacyjny-i-nie-teraz-problem https://bugzilla.mozilla.org/show_bug.cgi?id=675533 Będzie to, jak sugeruje Alex, wywołanie błędu oddzwaniania, jeśli odpowiesz "Nigdy". – brianjcohen
Widzę punkt widzenia programisty Mozilli na ten temat. Strona powinna mieć domyślne zachowanie, jeśli nie jest dostępna geolokalizacja, ale myślę też, że wyrażenie "Nie teraz" jest jak powiedzenie "Nie", ale nie pamiętam później odpowiedzi. – spig
Myślę, że powinieneś zobaczyć "nie teraz" jako brak odpowiedzi, tak samo, jakby użytkownik zignorował całe wyskakujące okienko. – Ferdy