2013-02-10 113 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

只需重新啓動你的手機,夥計們。是的,它有點愚蠢,但它是解決方案。