2014-10-10 76 views
0

我有页面按钮,点击时显示一个经纬度警报。它适用于我的笔记本电脑上的Chrome,但是当我尝试使用我的android手机时,页面显示,但警报不是。我试图用getCurrentPosition改变watchPosition,但没有改变。
为了解决这个问题,我建立了一个警戒检查点,并且我发现函数success()在笔记本浏览器中调用,但不在android浏览器中调用,甚至没有调用函数error()。 请帮忙。地理位置在网络浏览器上工作,但不在android手机浏览器

<html> 
<head><title>Geolocation</title></head> 
<body onload="getLocation();"> 
<input type="button" id="btnSearch" value="Search" onclick="btn_Click();"/> 

<script> 
    var pos; 
    function btn_Click() { 
     alert("Alert"); 
     //alert('Lat: ' + pos.coords.latitude + ' ' + 'Lon: ' + pos.coords.longitude); 
    } 

    function getLocation() { 
     alert("doSomething"); 
     if (navigator.geolocation) { 
      alert("navigator.geolocation"); 
      navigator.geolocation.getCurrentPosition(success,error,options); 
      function success(position) { 
       alert("success"); 
       pos = position; 
      } 
      function error(err) { 
       alert("Error"); 
      }; 
      var options = { 
       enableHighAccuracy: true, 
       timeout: 5000, 
       maximumAge: 0 
      }; 
     } else { 
      alert("I'm sorry, but geolocation services are not supported by your browser."); 
     } 

    } 
</script> 
</body> 
</html> 

我甚至尝试了谷歌齿轮,现在的GPS标志就要到了Android上,但位置仍然没有显示....

<html> 
<head><title>Javascript geo sample</title> 
<script src="geo-min.js" type="text/javascript" charset="utf-8"></script> 
</head> 
<body> 
<b>Javascript geo sample</b> 
<script> 
    var pos; 
    if (geo_position_js.init()) { 
     geo_position_js.watchPosition(success_callback, error_callback, { enableHighAccuracy: true }); 
    } 
    else { 
     alert("Functionality not available"); 
    } 

    function success_callback(p) { 
     pos = p; 
     alert('lat=' + p.coords.latitude.toFixed(2) + ';lon=' + p.coords.longitude.toFixed(2)); 
    } 

    function error_callback(p) { 
     alert('error=' + p.message); 
    } 

    function ChangeLabel() { 
     document.getElementById("Label1").innerHTML =pos.coords.latitude; 
    } 
</script> 
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br /> 
<input type="button" ID="Button1" value="Button" onclick="ChangeLabel()"/> 
</body> 
</html> 
+0

我认为这是在android浏览器中支持'alert()'的问题。可以肯定的是,不用提醒尝试使用地理坐标更新页面上的某些字段,并查看它是否有效。 – 2014-10-10 11:06:59

+0

其他警报工作正常在Android浏览器.....但我仍然尝试过,把一个标签,而不是警报我试图更新成功()...它没有工作在Android浏览器,但它的工作在网络浏览器 – j4rey89 2014-10-10 11:15:10

+0

我需要添加一些脚本来使用navigator.geolocation.getCurrentPosition();?以支持Android浏览器 – j4rey89 2014-10-10 11:15:57

回答

-2

您的代码似乎工作完全正常。

对于地理位置上的Android操作系统,您需要在AndroidManifest.xml文件举几个权限,即:

用途权限: -

ACCESS_LOCATION_EXTRA_COMMANDS 
ACCESS_COARSE_LOCATION 
ACCESS_FINE_LOCATION 

如果你想地理位置功能可在所有Android版本上运行,您还需要添加:

WRITE_EXTERNAL_STORAGE 
相关问题