有没有办法重新询问用户获取他的位置的权限,或者使用带有 javascript 的地理定位 API 删除旧设置?
Posted
技术标签:
【中文标题】有没有办法重新询问用户获取他的位置的权限,或者使用带有 javascript 的地理定位 API 删除旧设置?【英文标题】:Is there any way to re ask the user permission to get his location, or to remove older setting using geolocation API with javascript? 【发布时间】:2020-05-06 19:19:35 【问题描述】:我正在构建一个应用程序,我需要用户的位置来完成他的注册,但我该如何让他允许?我的意思是,弹出窗口说“系统要访问您的位置,要允许吗?”,如果他/她允许,那很好,但如果他/她拒绝,我想重新问他,说些什么比如,你不能继续,除非你允许我们得到你的位置,然后再问他。因为我知道你可以清理你的位置设置去 chorme 设置等,但是有什么方法可以通过 javascript 来完成吗?
这是我的功能
function pegaPaisUser()
navigator.geolocation.getCurrentPosition(addPaisToUser,localizacaoNegada);
function localizacaoNegada(erro)
pegaPaisUser();
console.log("HERE")
[![my console][1]][1]
【问题讨论】:
您不能这样做,因为这会向用户发送垃圾邮件并且系统会阻止它。但是,您可以通知用户:为了使用此应用程序,必须打开位置服务。始终让用户做出选择。 再次询问他们是否要选择必须通过用户交互。所以仅在click
事件处理程序中,例如。
是的,我知道,但我想让他知道该怎么做,你知道吗?如果您仍想使用该系统,请去 blah blah,但如果工作量太大,我想通过重新弹出框让他更轻松,我正在使用 cordova btw 构建
不会那么多。创建一个按钮,如果用户想要使用定位服务,请点击它,然后您可以在其中重新向用户查询定位服务。
我试过了,但是chrome保存了他的选择,即使重新调用函数,id什么也没做
【参考方案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 的地理定位 API 删除旧设置?的主要内容,如果未能解决你的问题,请参考以下文章