我的网站上有Google地图,并且在点击按钮“获取当前位置”时使用W3 Geolocation来检测用户位置。然后它应该弹出浏览器窗口顶部的allow / deny信息栏。
我不想提示我的所有访问者进行地理位置访问,但是想要以某种方式记住用户是否已经允许Geolocation并运行Geolocation(如果是这样)。
根据我的研究,这是不可能的,但我希望有人之前遇到过这种情况。我可以做到这一点的唯一方法就是设置一个cookie。
谢谢!
答案 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});