2013-02-10 3 views
1

Мое устройство HTC One X, браузер Chrome. Я пытаюсь заставить HTML5 GeoLocation работать в браузере, но я не могу, он работает на iOS и на рабочем столе, но ничего для моего Android. Ниже мой код:HTML5 GeoLocation не работает с Android

<!DOCTYPE html> 
<html> 
    <head> 
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' /> 
    <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'> 
     <title>HTML5 Test</title> 
     <script src='http://cloud.keepiteasy.net/libs/modernizr.custom.89661.js' type='text/javascript'></script> 
     <script src='http://cloud.keepiteasy.net/libs/jquery.js' type='text/javascript'></script> 
    </meta> 
    </head> 
    <body> 
    <script type="text/javascript"> 
     $(function() { 
     if (Modernizr.geolocation) { 
      navigator.geolocation.getCurrentPosition(success, error); 
     } 

     function success(position) { 
      var lat = position.coords.latitude; 
      var lng = position.coords.longitude; 

      alert(lat); 
      alert(lng); 
     } 

     function error(err) { 
      if(err.code == 1) { 
      alert("Error: Access is denied!"); 
      }else if(err.code == 2) { 
      alert("Error: Position is unavailable!"); 
      } 
     } 
     }); 
    </script> 
    </body> 
</html> 

UPDATE: Я установил доктайп UPDATE: Я обновил функции ошибки UPDATE: На моем HTC я все еще получаю ничего, даже не об ошибке. На моем Nexus 7 (просто попробовал), он отлично работает ... WTF, аппаратная проблема? Но другие приложения, основанные на GPS, работают ...

+1

Кажется немного странным использовать доктрину XHTML, когда вы пытаетесь сделать материал HTML5 :-) – Pointy

+0

Ваш код работает для меня на моем HTC One X [здесь] (http://jsbin.com/ilijeh/1), но это HTML5 doctype ... – Pointy

+0

Работает для меня на Nexus 7 со сломанным DOCTYPE. Что вы получите, если заменить обработчик ошибок на реальный? например 'function error (err) { if (err.code == 1) { alert (« Ошибка: доступ запрещен! »); } else if (err.code == 2) { alert ("Ошибка: положение недоступно!"); } } '(по клику от [здесь] (http://www.tutorialspoint.com/html5/geolocation_getcurrentposition.htm)) –

ответ

1

Кажется, что это проблема с оборудованием, так как ни один сайт не может получить мою геолокацию на моем OneX, однако мой Nexus 7 приведенный выше код работает нормально.

3

я получил тот же вопрос, на моем HTC One X. По крайней мере, вы можете убедиться, что ваша функция ошибки вызывается, добавив таймаут:

navigator.geolocation.getCurrentPosition(success, error, {timeout:3000}); 

В этом примере, ваша функция ошибки вызывается после того, как 3 секунды.

1

Просто перезагрузите телефон, ребята. Да, это глупо, но это решение.

Смежные вопросы