HTML5地理位置:切换watchPosition而不重新提示用户?

时间:2011-06-21 07:04:39

标签: html html5 geolocation

我的HTML5应用使用Google地图并使用navigator.geolocation.watchPosition跟踪用户,并在地图上使用标记显示其位置。

我还有一个切换按钮。如果用户点击Off,我想停止使用watchPosition跟踪它们。

到目前为止,这是我的代码:

    $("#loc-label").click(function(){
        if ($('#loc').is(':checked')) {
            navigator.geolocation.clearWatch(watchId);
            position_marker = null;
        } else {
            watchId = navigator.geolocation.watchPosition(geolocationWorked, geolocationFailed, {enableHighAccuracy:true, maximumAge:30000, timeout:27000});      
        }
    });

但是,使用此代码,只要用户切换位置,浏览器就会重新提示(至少在Firefox中),询问他们是否愿意分享位置。

这有什么办法吗?理想情况下,我只想提示他们一次。

显然,当用户切换时,我可以隐藏标记(但确实继续跟踪它们的位置)。然而,这并不理想,因为我使用的是高精度(即GPS,如果有的话),我更愿意让用户真正能够关闭地理位置。

谢谢!

2 个答案:

答案 0 :(得分:0)

猜测行为是特定于设备的。在我的 HTC Desire 上的http://www.thedotproduct.org/experiments/geo/测试演示时,除非我重新加载页面,否则我只会收到一次提示。

当然,如果用户选择永久允许该页面访问用户位置(我上面的演示),则不会再次提示用户。

答案 1 :(得分:0)

Safari和Chrome(至少在Mac上)有设置可供选择是否询问。还没有在Firefox上找到;似乎总是提示。