检查浏览器地理位置是否允许?

时间:2012-09-27 19:15:39

标签: html5 geolocation

目前我已经知道用户是允许还是拒绝浏览器位置权限。 但是,如何检测用户的浏览器是否曾允许该权限? 所以我不会再为用户显示“设置信息”。

$("#updateLocation").click(function(e){
      e.preventdefault;
      navigator.geolocation.getCurrentPosition(allowLocation,deniedLocation);
      return false;
});

function allowLocation(position){
// codes
}

function deniedLocation(){
// codes
}

2 个答案:

答案 0 :(得分:1)

您只需使用HTML5 localstorage 即可创建键值对,即可实现此目的:

$("#updateLocation").click(function(e){
      e.preventdefault;
      if(localStorage.location == undefined){
            var ip-located-geo-location = navigator.geolocation.getCurrentPosition();
            // code to get ip-located geolocation
            var user_defined_location = prompt("Please enter your location", ip-located-geo-location);
            localStorage.location = user_defined_location;
      }
      else{
            // use localStorage.location
      }
      return false;
});

如果先前未保存位置,则它会询问user_defined_location,同时显示ip-located-position,从而更新localStorage,以便下次用户无需根据自己的喜好重置位置

答案 1 :(得分:0)

我也面临同样的问题。并且,在我搜索和实验后,我终于找到了答案

您可以添加此JS代码:

navigator.permissions.query({name:'geolocation'}).then(function(result) {
  // Will return ['granted', 'prompt', 'denied']
  console.log(result.state);
});

然后您可以根据需要使用自定义代码。

来源:https://developer.mozilla.org/en-US/docs/Web/API/Navigator/permissions