我在一个页面上有一个按钮,该按钮调用一个函数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);
}
而且,我想做的是,每当用户不允许位置访问时,我都想重置位置权限首选项。这样,当单击一个按钮(我将设置它)时,将显示允许或拒绝该位置的弹出窗口。我可以这样做吗?
答案 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()
}