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