首页 > 解决方案 > 有没有办法重新询问用户获取他的位置的权限,或者使用带有 javascript 的地理定位 API 删除旧设置?

问题描述

我构建了一个应用程序,我需要用户的位置来完成他的注册,但是我该怎么做才能让他允许呢?我的意思是,弹出窗口说“系统要访问您的位置,要允许吗?”,如果他/她允许,那很好,但如果他/她拒绝,我想重新问他,说些什么比如,你不能继续,除非你允许我们得到你的位置,然后再问他。因为我知道你可以清理你的位置设置去 chorme 设置等,但是有什么方法可以通过 javascript 来完成吗?

这是我的功能

function pegaPaisUser(){

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

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

标签: javascriptgeolocation

解决方案


使用下面的代码时,我看到第一次单击该站点时,我会被要求获得位置服务的许可。如果我拒绝并再试一次,我会在 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);
   });
});

推荐阅读