使用jQuery重置位置首选项

时间:2018-11-16 12:15:22

标签: javascript jquery geolocation location

我在一个页面上有一个按钮,该按钮调用一个函数findLocation,该函数获取用户的位置。我有看起来像这样的功能:

       function findLocation(){
          var geoSuccess = function(position) {
              var startPos = position;
              console.log(startPos.coords.latitude);
              console.log(startPos.coords.longitude);
          };


          var geoError = function(error){
              console.log("Error!");
          }

          navigator.geolocation.getCurrentPosition(geoSuccess, geoError);
       }

而且,我想做的是,每当用户不允许位置访问时,我都想重置位置权限首选项。这样,当单击一个按钮(我将设置它)时,将显示允许或拒绝该位置的弹出窗口。我可以这样做吗?

3 个答案:

答案 0 :(得分:0)

好吧,似乎不再支持navigator.permissions.revoke ...

您所能做的就是使用如下代码:

navigator.permissions.query({name: 'geolocation'}).then(function(result) {
         if (result.state == 'granted') {
             report(result.state);
             geoBtn.style.display = 'none';
         } else if (result.state == 'prompt') {
             report(result.state);
             geoBtn.style.display = 'none';

             navigator.geolocation.getCurrentPosition(revealPosition, positionDenied, geoSettings);
         } else if (result.state == 'denied') {
             report(result.state);
             geoBtn.style.display = 'inline';
         }
         result.onchange = function() {
             report(result.state);
         }
     });

答案 1 :(得分:-1)

navigator.permissions.revoke({name:'geolocation'})

答案 2 :(得分:-1)

如果您使用confirm生成了弹出式窗口:

将其添加到getCurrentPosition函数中

   getCurrentPosition(geoSuccess, geoError){
     confirm("Do you want to allow the location?") ? geoSuccess() : geoError()
   }