在地理位置 API 中?不。
如果用户单击拒绝权限,则仅表示“不,不要再打扰我......”
但是,用户可以通过删除 Location-share-settings 来做到这一点,然后当然会再次弹出提示。
或者用户可以在浏览器允许的情况下更改设置,但是例如 Chrome 将这些设置作为例外管理(无论用户是否允许或拒绝权限),因此用户必须删除设置,resp。反正例外。
现在怎么办?
您唯一的选择是捕获错误并使用例如一些外部 API 通过 IP 查找用户的位置。您可以自己编程,或者当然有@Venkat 建议的现有解决方案。
但请注意,IP 地理定位是一个棘手的问题 - 有时它具有地址数字精度,有时它只是状态精度。
Mozilla文档中的这个示例展示了如何处理地理位置错误的一个很好的示例:
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
function success(pos) {
var crd = pos.coords;
console.log('Your current position is:');
console.log('Latitude : ' + crd.latitude);
console.log('Longitude: ' + crd.longitude);
console.log('More or less ' + crd.accuracy + ' meters.');
};
function error(err) {
/*
CALL EXTERNAL API HERE
*/
console.warn('ERROR(' + err.code + '): ' + err.message);
};
navigator.geolocation.getCurrentPosition(success, error, options);