我有按钮的页面,点击时会显示纬度和经度的警报。它适用于我的笔记本电脑上的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>
答案 0 :(得分:-2)
您的代码似乎工作正常。
要使Geo-location能够在Android操作系统上运行,您需要在AndroidManifest.xml文件中提供一些权限,即:
使用权限: -
ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
如果您希望地理位置功能适用于所有Android版本,则还需要添加:
WRITE_EXTERNAL_STORAGE