Я прочитал много тем об этом, но так и не нашел решения.
Я использую этот типичный код для геолокации:
`
Код: Выделить всё
document.write("Trying to locate you");
if(navigator.geolocation){
document.write("Geolocation is supported");
navigator.geolocation.getCurrentPosition(successCallback, errorCallback,
{
enableHighAccuracy : true,
timeout : 10000, // 10s
maximumAge : 0
}
);
function successCallback(position){
document.write("You have been located. Latitude :" + position.coords.latitude +", longitude : " + position.coords.longitude);
};
function errorCallback(error){
document.write("It didn't work");
switch(error.code){
case error.PERMISSION_DENIED:
document.write("Permission denied");
break;
case error.POSITION_UNAVAILABLE:
document.write("Position unavailable");
break;
case error.TIMEOUT:
document.write("Timeout");
break;
case error.UNKNOW_ERROR:
document.write("Unknown error");
break;
}
}
}
else{
document.write("La géolocalisation n'est pas supportée par le navigateur");
}
Вот что происходит с этим:
1. Появятся следующие сообщения:
"Пытаюсь вас найти"
"Геолокация поддерживается"
2. По истечении времени, указанного в таймауте (здесь 10 секунд), отображается пустая страница.
Функции sucessCallback или errorCallback не вызываются.
Когда я не указываю таймаут (таймаут = бесконечность), он работает, если включен GPS. Если это не так, я также получаю пустую страницу без сообщений об ошибках.
Я попробовал этот тест геолокации HTML5 в браузере Android: http://html5demos.com/geo, и он также не работает.
Я попробовал этот код (1-й ответ). Иногда это работает, но нам приходится ждать 2 минуты, чтобы получить позицию (как сказано в комментариях).
Я также пытался получить ее через веб-просмотр со всеми необходимыми спецификациями, но он делает то же самое.
Здесь говорится, что для устранения этой ошибки в браузере Android нам просто нужно указать для параметра EnableHighAccuracy значение true, но если GPS не активирован, функция по-прежнему не работает. (sucessCallback или errorCallback).
Если у кого-то есть решение, это будет для меня большой помощью.
Спасибо за вашу помощь.
На самом деле пустая страница была вызвана функцией «document.write». Я заменил его на внутренний HTML, и теперь он работает. Это означает, что отображаются ошибки, вызывается errorCallback.
Теперь проблема в том, что Android-браузер может определять положение только с помощью GPS (HighAccuracy). Если GPS не включен или он не может определить местоположение (например, внутри здания), он не вернет местоположение.
Напротив, браузер Opera будет использовать ретрансляционную сеть (метод Cell-ID) для определения местоположения (в этом случае точность составляет менее 150 м).
Знаете ли вы, как заставить браузер Android использовать источник Cell-ID?
Подробнее здесь: https://stackoverflow.com/questions/103 ... -0-browser
Мобильная версия