Определение, доступна ли функция геолокации html5 И знает ли она, где вы находитесь? - PullRequest
3 голосов
/ 20 июня 2011

Я экспериментирую с геолокацией HTML5 и встроил небольшой тестовый скрипт в страницу, чтобы вернуть мои нынешние координаты.

Текущее приложение, которое я собираюсь использовать для этого, - это функция «приятно иметь» на сайте, над которым я работаю - она ​​включает в себя поиск «найди мой ближайший» в некоторых местах, и я подумал, что если у вас есть устройство, учитывающее местоположение, я мог бы легко включить «в мое текущее местоположение» наряду с обычным «в мой почтовый индекс». Я не заинтересован в загрузке нескольких дополнительных библиотек и запасных вариантов для такой маленькой и несущественной функции. Если у вас есть способное устройство, отлично, если нет, вы никогда не увидите вариант.

Итак, я попробовал скрипт на iPad, и, как и ожидалось, меня попросили разрешить использовать мое текущее местоположение, с которым я согласился, и мой тестовый скрипт вернул мое текущее местоположение. Общий выигрыш.

Я попробовал то же самое на своем рабочем столе, так как я использую Firefox 4 и его браузер, совместимый с HTML5. Он спросил меня, хочу ли я поделиться своим местоположением, а затем быстро вернул ошибку, что он не знал мое местоположение (потому что это настольный компьютер и не имеет GPS). Я думал, что это сделало исходный вопрос «Вы хотите поделиться своим местоположением» несколько бессмысленным - это могло бы излишне раздражать людей, которые, возможно, думали, что могли бы использовать функцию, которую они на самом деле не могут.

Итак, что такое надежный метод для обнаружения, если:

a) Браузер может получить доступ к геолокации HTML5

И

b) Браузер знает или может узнать, где находится пользователь.

Без фактического вызова функции геолокации заранее и не задавать пользователю раздражающий и ненужный вопрос?

Для а) я просто использую:

if (navigator.geolocation) {
     navigator.geolocation.getCurrentPosition(showCoords,handleGeoErrors);    
}

Но для б) единственный ответ, который у меня есть, связан с вызовом getCurrentPosition, который вызывает вопрос пользователю.

Есть какие-нибудь мысли по этому поводу, кто-нибудь?

1 Ответ

1 голос
/ 21 июня 2011

Не будет способа сделать это, потому что способ, которым браузер выясняет, может ли он получать информацию о геолокации (при отсутствии прямого подключения к устройству GPS), состоит в том, чтобы отправить запрос к настроенному геолокациисервис и посмотрим, что там написано.К сожалению, к этому моменту он уже поделился личной информацией, которую надоедливый вопрос должен предотвратить, не передавая ее без разрешения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...