1

我的设备是 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 的应用程序工作...

4

3 回答 3

3

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

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

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

于 2013-03-06T08:52:42.463 回答
1

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

于 2013-02-18T15:52:52.037 回答
1

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

于 2014-03-26T11:00:26.513 回答