Is there a way of detecting whether a user has already given permission to use navigator.geolocation?(有没有办法检测用户是否已经授予使用 navigator.geolocation 的权限?)
问题描述
除了第一次设置cookie之外,有没有办法检测用户是否已经允许navigator.geolocation返回浏览器的纬度/经度?
Apart from setting a cookie the first time round, is there a way of detecting whether a user has already given permission for navigator.geolocation to return the lat/long of the browser?
如果有,它是什么?它在所有浏览器中都相同还是在所有浏览器中不同?
If there is, what is it and is it the same across all browsers or different across all browsers?
此主题已在其他地方部分回答
根据 GeoLocation API – Chrome/Safari – 权限管理和视觉差异,Chrome 请求可撤销的一次性权限.我还没有读完这篇文章,但似乎权限存储并不是纯 Chrome 要做的事情.
According to GeoLocation API – Chrome / Safari – Permission management and Visual Differences, Chrome asks for a revokable one-time permission. I haven't finished reading the article, but it would seem that storage of permissions is not a purely-Chrome thing to do.
推荐答案
如何使用localStorage 应该被所有html5浏览器支持(支持geoLocation)
What about using localStorage which should be supported by all html5 browsers (that support geoLocation)
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
}
//Get latitude and longitude;
function successFunction(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
localStorage['authorizedGeoLocation'] = 1;
}
function errorFunction(){
localStorage['authorizedGeoLocation'] = 0;
}
function checkauthorizedGeoLocation(){ // you can use this function to know if geoLocation was previously allowed
if(typeof localStorage['authorizedGeoLocation'] == "undefined" || localStorage['authorizedGeoLocation'] == "0" )
return false;
else
return true;
}
然后您使用以下功能进行检查:
And then you check using the below function :
alert(checkauthorizedGeoLocation());
这是 jsfiddle 如果您需要检查
这篇关于有没有办法检测用户是否已经授予使用 navigator.geolocation 的权限?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:有没有办法检测用户是否已经授予使用 navigator.geolocation 的权限?


- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07