HTML5 Geolocation是否忽略enableHighAccuracy选项?

时间:2013-07-23 07:55:55

标签: javascript android html5 geolocation

我目前正在撰写可能受移动设备影响的网络应用程序。在某些时候,我需要检索用户的位置,我通过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上。你有遇到过这个问题吗?也许这是一个已知的错误?

感谢。

1 个答案:

答案 0 :(得分:0)

是的,我在Android Lollipop和Chrome 43上遇到了同样的事情。 我希望我可以在没有高精度的情况下执行getCurrentPosition,同时启用启用了高准确度的watchPosition。

但不是。两个呼叫在相同(晚)时间返回,具有相同的(GPS)结果......

https://bugzilla.mozilla.org/show_bug.cgi?id=1057076

http://www.hyam.net/blog/archives/1432