我的设备是HTC One X,浏览器是Chrome。我正在尝试让HTML5 GeoLocation在浏览器中工作,但是我无法,它可以在iOS和桌面上运行,但对于我的Android来说却没有。以下是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
<meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'>
<title>HTML5 Test</title>
<script src='http://cloud.keepiteasy.net/libs/modernizr.custom.89661.js' type='text/javascript'></script>
<script src='http://cloud.keepiteasy.net/libs/jquery.js' type='text/javascript'></script>
</meta>
</head>
<body>
<script type="text/javascript">
$(function() {
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(success, error);
}
function success(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
alert(lat);
alert(lng);
}
function error(err) {
if(err.code == 1) {
alert("Error: Access is denied!");
}else if( err.code == 2) {
alert("Error: Position is unavailable!");
}
}
});
</script>
</body>
</html>
更新:我修复了doctype 更新:我更新了错误功能 更新:在我的HTC上我仍然没有得到任何东西,甚至没有错误。在我的Nexus 7上(刚试过它),它运行正常...... WTF,硬件问题?但其他基于GPS的应用程序可以工作......
答案 0 :(得分:3)
我在HTC One X上遇到了同样的问题。至少你可以通过添加超时来确保你的错误函数被调用:
navigator.geolocation.getCurrentPosition(success, error, {timeout:3000});
在此示例中,您的错误函数将在3秒后调用。
答案 1 :(得分:1)
似乎是某种硬件问题,因为没有网站可以在我的OneX上获取我的地理位置,但是我的Nexus 7上面的代码工作正常。
答案 2 :(得分:1)
刚刚重启手机,伙计们。是的,它有点愚蠢,但它是解决方案。