Javascript 地理定位在web浏览器上工作,但在android手机浏览器上不工作

Javascript 地理定位在web浏览器上工作,但在android手机浏览器上不工作,javascript,android,web,geolocation,Javascript,Android,Web,Geolocation,我有一个带有按钮的页面,当点击时显示一个带有纬度和经度的警告。它可以在我笔记本电脑的Chrome浏览器上运行,但当我尝试使用android手机时,页面会显示,但警报不会显示。我已尝试使用getCurrentPosition更改watchPosition,但没有更改。 为了解决这个问题,我设置了一个警报检查点,我发现函数success()在笔记本电脑浏览器中被调用,但在android浏览器中没有,甚至没有调用函数error()。 请帮忙 <html> <head><t

我有一个带有按钮的页面,当点击时显示一个带有纬度和经度的警告。它可以在我笔记本电脑的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>

地理定位
var-pos;
函数btn_Click(){
警报(“警报”);
//警报('Lat:'+pos.coords.latitude+'+'Lon:'+pos.coords.longitude);
}
函数getLocation(){
警惕(“剂量测定”);
if(导航器.地理位置){
警报(“navigator.geolocation”);
navigator.geolocation.getCurrentPosition(成功、错误、选项);
功能成功(职位){
警惕(“成功”);
pos=位置;
}
函数错误(err){
警报(“错误”);
};
变量选项={
EnableHighAccurance:正确,
超时:5000,
最大值:0
};
}否则{
警报(“很抱歉,您的浏览器不支持地理定位服务。”);
}
}
我甚至试过google gears,现在android上出现了gps标志,但位置仍然没有显示出来

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

Javascript地理示例
Javascript地理示例
var-pos;
if(geo_position_js.init()){
geo_position_js.watchPosition(成功回调,错误回调,{enableHighAccurance:true});
}
否则{
警报(“功能不可用”);
}
函数成功\u回调(p){
pos=p;
警报('lat='+p.coords.latitude.toFixed(2)+';lon='+p.coords.longitude.toFixed(2));
}
函数错误\u回调(p){
警报(“错误=”+p.message);
}
函数ChangeLabel(){
document.getElementById(“Label1”).innerHTML=pos.coords.latitude;
}


您的代码似乎运行得非常好

要使地理位置在Android操作系统上工作,您需要在AndroidManifest.xml文件中授予一些权限,即:

使用权限:-

ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
如果您想在所有Android版本上使用地理位置功能,还需要添加:

WRITE_EXTERNAL_STORAGE

我认为这是android浏览器中的
alert()
支持的问题。可以肯定的是,不使用警报,而是尝试使用地理坐标更新页面上的某些字段,看看是否有效。其他警报在android浏览器中运行良好……但我仍然尝试了,放置了一个标签,并尝试在成功时更新警报()……在android浏览器上不起作用,但是它在web浏览器上运行我需要添加一些脚本来使用navigator.geolocation.getCurrentPosition();?支持android浏览器可能会有所帮助