检测是否已允许W3地理位置

时间:2011-11-04 19:14:35

标签: geolocation geocoding ip-geolocation

我的网站上有Google地图,并且在点击按钮“获取当前位置”时使用W3 Geolocation来检测用户位置。然后它应该弹出浏览器窗口顶部的allow / deny信息栏。

我不想提示我的所有访问者进行地理位置访问,但是想要以某种方式记住用户是否已经允许Geolocation并运行Geolocation(如果是这样)。

根据我的研究,这是不可能的,但我希望有人之前遇到过这种情况。我可以做到这一点的唯一方法就是设置一个cookie。

谢谢!

1 个答案:

答案 0 :(得分:1)

这不完全是你想要的,但我认为它会有所帮助。

根据W3C draft,如果没有找到缓存值,您可以尝试从浏览器获取任何缓存值(无需用户确认)或回退到自定义方法。

假设用户已同意提供地理位置,则会缓存该地理位置。来自同一W3C草案的例子:

// Request a position. We only accept cached positions, no matter what 
// their age is. If the user agent does not have a cached position at
// all, it will immediately invoke the error callback.
navigator.geolocation.getCurrentPosition(successCallback,
                                         errorCallback,
                                         {maximumAge:Infinity, timeout:0});