javascript - 有没有办法重新请求用户许可获取他的位置,或者使用带有 JavaScript 的地理定位 API 删除旧设置?

标签 javascript geolocation

我正在构建一个应用程序,我需要用户的位置来完成他的注册,但我该如何让他允许?我的意思是,弹出窗口显示“系统想要访问您的位置,是否允许?”,如果他/她允许,那很好,但如果他/她拒绝,我想重新问他,说些什么就像,除非您允许我们获取您的位置,然后重新询问他,否则您无法继续。因为我知道你可以清理你的位置设置、chorme 设置等,但是有什么方法可以通过 javascript 做到这一点吗?

这是我的功能

function pegaPaisUser(){

   navigator.geolocation.getCurrentPosition(addPaisToUser,localizacaoNegada);
}

function localizacaoNegada(erro){
    pegaPaisUser();
    console.log("HERE")
}[![my console][1]][1]

最佳答案

使用下面的代码时,我发现第一次单击该网站时,我会被要求获得位置服务的许可。如果我拒绝并重试,我会在 chrome 栏中看到一个小图标,但仅此而已。看来您应该指导用户如何选择它。或者以其他方式说服他们第一次授予访问权限。

<div class="message">
  <p>This application needs the location services. Please click the button if you want to allow location services to be used.</p>
  <button class="js-retry-location">Allow Location services</button>
</div>
const retryButton = document.querySelector('.js-retry-location');
retryButton.addEventListener('click', event => {
   navigator.geolocation.getCurrentPosition({ coords }=> {
     console.log(coords);
   });
});

关于javascript - 有没有办法重新请求用户许可获取他的位置,或者使用带有 JavaScript 的地理定位 API 删除旧设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61643582/

相关文章:

geolocation - 如何检查给定字符串是否是有效的地理位置?

ios - apple mapkit 在中国的 iPhone 设备上能用吗

javascript - 使用 div 动态显示列,第一列固定,其余列使用水平滚动条

javascript - 如何处理 Controller 内部 Angular 服务的错误?

javascript - angular *ngFor 不使用输入重新渲染 html 表

geolocation - 通过 GPS 位置获取城市的 WikiData 标识符

javascript - 当多选选项设置为 true 时,为复选框列添加自定义格式化程序

javascript - 带有 angular-bootstrap 0.12.1 和 Angular 1.2.x 的弹出窗口中的 HTML

google-maps - Google Maps Place API 和 Google Maps Time Zone API 之间的区别

python - 使用 python 使用 azure cosmos db SQL API 处理地理空间数据