2013-02-10 115 views
1

我的设备是HTC One X,浏览器是Chrome。我试图让HTML5 GeoLocation在浏览器中工作,但是我无法在iOS和桌面上运行,但是对于我的Android没有任何效果。下面是我的代码:HTML5地理位置不适用于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 更新:我更新了误差函数 UPDATE:在我的HTC我仍然得到什么,甚至不是一个错误。在我的Nexus 7上(刚刚尝试过),它工作正常...跆拳道,硬件问题?但其他基于GPS的应用程序工作...

+1

似乎有点奇怪的是,当您尝试使用HTML5的东西时,请使用XHTML文档类型:-) – Pointy 2013-02-10 22:26:23

+0

您的代码适用于我的HTC One X [此处](http://jsbin.com/ilijeh/1 )但这是一个HTML5的文档类型... – Pointy 2013-02-10 22:28:29

+0

适用于Nexus 7上的破解DOCTYPE。如果用一个真正的错误处理程序替换错误处理程序,你会得到什么?例如如果(错误代码== 1)警报(“错误:访问被拒绝!”),则功能错误(错误){错误} (错误:位置不可用!);否则如果(错误代码= 2){0}错误:位置不可用! } }(nick [from [here](http://www.tutorialspoint.com/html5/geolocation_getcurrentposition.htm)) – 2013-02-10 22:35:43

回答

1

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

3

我得到了同样的问题在我的HTC One X.至少可以确保您的错误函数被调用,通过增加超时:

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

在这个例子中,你的错误函数被称为后3秒。

1

只需重新启动你的手机,伙计们。是的,它有点愚蠢,但它是解决方案。