在网络浏览器上工作的地理位置,但在Android手机浏览器上没有

时间:2014-10-10 10:55:06

标签: javascript android web geolocation

我有按钮的页面,点击时会显示纬度和经度的警报。它适用于我的笔记本电脑上的Chrome,但是当我尝试使用我的Android手机时,页面显示但警报却没有。我尝试用getCurrentPosition更改watchPosition,但没有变化  为了解决这个问题,我已经建立了一个警报检查点,我发现函数success()在笔记本电脑浏览器中调用但在android浏览器中调用,甚至没有调用函数error()。 请帮忙。

<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>

1 个答案:

答案 0 :(得分:-2)

您的代码似乎工作正常。

要使Geo-location能够在Android操作系统上运行,您需要在AndroidManifest.xml文件中提供一些权限,即:

使用权限: -

ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION

如果您希望地理位置功能适用于所有Android版本,则还需要添加:

WRITE_EXTERNAL_STORAGE