用户在 javascript 中阻止访问后请求位置坐标
Request location coordinates after user has blocked access in javascript
如果用户过去阻止了我的请求,我如何提示他们在 javascript 中的地理位置? (使用 navigator.geolocation.getCurrentPosition
)。
例如,我的网络应用程序需要位置服务,而用户不小心点击了 "block",或者他们改变了主意。我该怎么做才能再次提示他们?
你不能。
用户必须手动管理他们的浏览器设置,因为您的网站在拒绝位置权限时被添加到黑名单。
以下是 Chrome 用户管理其位置权限的说明:https://support.google.com/chrome/answer/142065?hl=en
如@matthew-shwery 所述,您无法更改权限。
你能做的最好的事情就是检查权限并通知用户权限被拒绝
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);
}
});
如果用户过去阻止了我的请求,我如何提示他们在 javascript 中的地理位置? (使用 navigator.geolocation.getCurrentPosition
)。
例如,我的网络应用程序需要位置服务,而用户不小心点击了 "block",或者他们改变了主意。我该怎么做才能再次提示他们?
你不能。
用户必须手动管理他们的浏览器设置,因为您的网站在拒绝位置权限时被添加到黑名单。
以下是 Chrome 用户管理其位置权限的说明:https://support.google.com/chrome/answer/142065?hl=en
如@matthew-shwery 所述,您无法更改权限。
你能做的最好的事情就是检查权限并通知用户权限被拒绝
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);
}
});