好的,我有以下代码:
navigator.geolocation.getCurrentPosition (
function (e) {
alert('ok');
}, function (e) {
alert('denied');
}
);
我可以在pageload上调用它,如果权限被拒绝,我将隐藏依赖于geoloc信息的按钮和功能。
但是,当用户选择单击其中一个geoloc按钮时,我不想在页面加载时请求权限,而只是按需要求。
因此,在这种情况下,假设用户到达我的页面,之前已决定拒绝访问地理定位API,是否可以告知该权限先前已被拒绝,以便我可以隐藏按钮而不必等到他们再次点击其中一个按钮?
答案 0 :(得分:0)
您的意思是拒绝访问其他网站,或之前在您的网站上访问?
如果是前者,为什么假设你受这个决定的约束?也就是说,不要担心它,无论如何都要再问。
如果是后者,您可能应该在您的网站上存储用户会话期间的决定。如果您正在使用服务器会话或使用简单的cookie,则可以在服务器端执行此操作。
答案 1 :(得分:0)
您可以将结果存储在浏览器中,例如使用LocalStorage或Cookie。但是,如果用户第一次拒绝访问并不意味着他下次会这样做。但是如果你隐藏或禁用按钮,即使他想要也不能使用这些功能。现在,如果他连续10次拒绝,或者某种数字,那就更有意义了。