HTML5 GeoLocation无法与Android配合使用

时间:2013-02-10 22:24:00

标签: javascript android html5 mobile geolocation

我的设备是HTC One X,浏览器是Chrome。我正在尝试让HTML5 GeoLocation在浏览器中工作,但是我无法,它可以在iOS和桌面上运行,但对于我的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>

更新:我修复了doctype 更新:我更新了错误功能 更新:在我的HTC上我仍然没有得到任何东西,甚至没有错误。在我的Nexus 7上(刚试过它),它运行正常...... WTF,硬件问题?但其他基于GPS的应用程序可以工作......

3 个答案:

答案 0 :(得分:3)

我在HTC One X上遇到了同样的问题。至少你可以通过添加超时来确保你的错误函数被调用:

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

在此示例中,您的错误函数将在3秒后调用。

答案 1 :(得分:1)

似乎是某种硬件问题,因为没有网站可以在我的OneX上获取我的地理位置,但是我的Nexus 7上面的代码工作正常。

答案 2 :(得分:1)

刚刚重启手机,伙计们。是的,它有点愚蠢,但它是解决方案。