2011-06-02 74 views
6

我使用此代码来获取用户地理位置。一切顺利,直到用户拒绝获取位置的权限。看起来这个选项被缓存了,我不知道如何重置它。地理位置API权限网络浏览器

有什么方法可以重新询问权限吗?提前致谢!

if (navigator.geolocation) {            

     navigator.geolocation.getCurrentPosition(function(position) {  

      // Success Callback 


     }, function(error) { 
      //error Callback 

     },{ 
        //options 
      }); 
    }else{ 
     //geolocation not available 
    } 

回答

1

很确定这是每个网站存储的浏览器/设备设置。我认为重点在于你不能从脚本中重置它,因为它首先会打败提示点。我相信重置的唯一方法是更改​​浏览器/设备中的设置。

1

像bgreater说的那样,它取决于浏览器。但是,当用户拒绝获取位置错误函数的权限将被调用错误对象。此错误对象包含错误代码。当错误代码等于1时,表示用户拒绝权限。

var errorTypes = { 
    0: "Unknown error", 
    1: "Permission denied by user", 
    2: "Position is not available", 
    3: "Request timed out" 
}; 

我想,你可以检查这个错误代码并向用户显示某种信息。