我的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,如果有的话),我更愿意让用户真正能够关闭地理位置。
谢谢!
答案 0 :(得分:0)
我猜测行为是特定于设备的。在我的 HTC Desire 上的http://www.thedotproduct.org/experiments/geo/测试演示时,除非我重新加载页面,否则我只会收到一次提示。
当然,如果用户选择永久允许该页面访问用户位置(我上面的演示不),则不会再次提示用户。
答案 1 :(得分:0)
Safari和Chrome(至少在Mac上)有设置可供选择是否询问。还没有在Firefox上找到;似乎总是提示。