对于navigator.geolocation.getCurrentPoistion仅阻止一次

时间:2018-08-14 18:59:45

标签: javascript

这似乎是默认行为:

navigator.geolocation.getCurrentPosition((position) => {
  // doSomethingWithPoistion
})

使它被拒绝。所有后续呼叫均被拒绝。有没有一种方法,当用户在弹出窗口上点击阻止时,仅用于这种直接交互?

也就是说,我在页面加载时使用位置服务。我也有一个提示相同功能的按钮。如果用户拒绝定位服务,该按钮将不起作用(只需获取另一个错误回调)。

是否有办法使负载拒绝仅适用于此回调,并且不会将其设置为在随后的getCurrentPosition调用中继续拒绝吗?

1 个答案:

答案 0 :(得分:0)

根据我在Chrome浏览器中重新执行此操作时的判断,与其说是地理位置定位调用的否认而是不是地理位置定位调用的 blocking

在运行您在Chrome中提供的代码段时,只需按一下X按钮退出权限弹出窗口,我便可以在每次运行代码时触发权限提示。如果我按下Block按钮以关闭权限弹出窗口,则该网站将被添加到我在Chrome浏览器中被阻止的站点列表中,并且从不再次请求权限。

下面链接的此解决方案似乎是处理这种情况的更好方法之一。建议您检查地理位置许可的当前状态,并通知用户当前是否被拒绝。

https://stackoverflow.com/a/42476603/6121503