Геолокация JavaScript на Android не работает
Я занимаюсь разработкой веб-сайта, который опирается на данные геолокации мобильного пользователя. Я делаю это типичным способом через:
function initialize() {
if(window.google && google.gears) {
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(useLocation, errorOnLocate);
}
else if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(useLocation, errorOnLocate);
}
else {
alert("no geo found");
}
}
function errorOnLocate(message)
{
alert(message);
zoomTo(-34.397, 150.644);
}
Это всегда завершается ошибкой с [object PositionError] в функции errorOnLocate, даже если я переключаю порядок методов геолокации.
Это на HTC Hero с android 2.1 с использованием любого встроенного браузера. Мой gps включен, и я дал указание браузеру разрешить веб-сайтам просматривать мое местоположение. Функция "местоположение" в родном приложении карты Google, которое приходит на телефон, точно определяет мое местоположение
Более того, если я захожу на мой сайт с помощью FireFox 3.5 на моем персональном компьютере, он будет правильно определять мое местоположение (я считаю, что он использует комбинацию точек данных ip и ap). В любом случае, он использует тот же JavaScript.
РЕДАКТИРОВАТЬ: это HTML / JS в браузере, а не нативное приложение. Также точное сообщение об ошибке: «Последний поставщик местоположения был отключен»