我目前正在编写一个可能会受到移动设备影响的网络应用程序。在某些时候,我需要通过 HTML5 的 getCurrentPosition() 来检索用户的位置。我宁愿尽可能快地进行粗略修复,所以我调用此函数时将 enableHighAccuracy 参数设置为 false。
大多数情况下,这按预期工作。但是,在某些 Android 设备上,浏览器显然会忽略此属性并始终尝试获取 GPS 位置(GPS 图标出现在通知栏上)。有趣的是,即使我在“设置”中手动禁用 GPS 定位,也会发生这种情况。
这似乎不依赖于浏览器,我已经用 Chrome、Firefox 和 Opera 测试了相同的代码,并且发生了如下简单代码:
<!doctype html>
<html>
<head>
<script type="text/javascript">
function getLocation() {
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(onLocationReceived, onLocationError, {timeout: 5000, enableHighAccuracy: false});
}
else
alert("Geoloc not supported by your browser");
}
function onLocationReceived(position) {
alert("Location retreived! " + position.coords.latitude + ", " + position.coords.longitude + " (" + position.coords.accuracy + ")");
}
function onLocationError(error) {
alert("Received an error! " + error.message + "(" + error.code + ")");
}
</script>
</head>
<body>
<button onclick="getLocation();">Get location</button>
</body>
到目前为止,这已经发生在 HTC One 和小米 1S 上。你有没有遇到过这个问题?也许这是一个已知的错误?
谢谢。