Microsoft Edge продолжает показывать сообщение «Пользователь отклонил запрос на геолокацию», даже если я включил местоположение для сайта

Я разработал приложение, которое сохраняет пользовательское событие и местоположение при нажатии кнопки. Это приложение отлично работает в других браузерах, кроме Microsoft Edge. Если пользователь отклоняет запрос на геолокацию один раз и хочет разрешить его в следующий раз, то даже после очистки кеша, включения местоположения и управления разрешениями в настройках предупреждение «Пользователь отклонил запрос на геолокацию» продолжает появляться при каждом нажатии кнопки. Любые входные данные, подобный опыт и решение?

function button_click(){
  showPosition();
}
function showPosition(){  
    if(navigator.geolocation){
       navigator.geolocation.getCurrentPosition(successCallback, 
       errorCallback, options);
    } else {
        alert('Geolocation not supported by your browser');
        document.cookie = "latitude=0.0";
        document.cookie = "longitude=0.0";
        document.getElementById("myForm").submit();
    }
}

var options = {
    enableHighAccuracy: true,
    // timeout: 10000,
    maximumAge: 0
};

function successCallback(position){
    var latitude = position.coords.latitude.toFixed(5);
    var longitude = position.coords.longitude.toFixed(5);    
    document.cookie = "latitude=" + latitude;
    document.cookie = "longitude=" + longitude;  
    document.getElementById("myForm").submit();
}

function errorCallback(error){
    switch (error.code){
        case error.PERMISSION_DENIED:
            alert("User denied request for Geolocation.");
            break;
        case error.POSITION_UNAVAILABLE:
            alert("Location information is not available.");
            break;
        case error.TIMEOUT:
            alert("The request to get user location timed out.");
            break; 
        default:
            alert("Unkown error.");
    }    
    document.cookie = "latitude=0.0";
    document.cookie = "longitude=0.0";
    document.getElementById("myForm").submit(); 
}  

Я не хочу, чтобы предупреждение «Пользователь отклонил запрос на геолокацию» появлялось каждый раз даже после того, как пользователь включил местоположение.


person Ann Francis    schedule 09.07.2019    source источник


Ответы (1)


Я пытаюсь протестировать ваш код на Microsoft Edge 44.17763.1.0.

Основываясь на результатах моего тестирования, он отображает предупреждение «Пользователь отклоняет запрос на геолокацию» каждый раз после того, как пользователь отказывается делиться местоположением в первый раз.

Причина в том, что MS Edge запоминает этот выбор пользователя и больше не предлагает пользователю поделиться местоположением.

Если пользователь хочет поделиться местоположением, чем

(1) Пользователю необходимо перейти в Настройки и прочее -> Настройки -> Дополнительно -> Управление разрешениями.

(2) Выберите сайт из списка и нажмите на него.

(3) Включите кнопку переключения местоположения.

введите здесь описание изображения

После этого он будет работать правильно и не будет отображать сообщение об ошибке.

person Deepak-MSFT    schedule 09.07.2019
comment
Будет ли он продолжать нормально работать, если вы откажете в разрешении на определение местоположения один раз и разрешите в следующий раз? - person Ann Francis; 09.07.2019
comment
Ну, на моей стороне работает нормально. Не могли бы вы еще раз проверить, выполнив описанные выше действия? - person Deepak-MSFT; 09.07.2019
comment
Я пробовал то же самое в течение последних нескольких дней. Один раз сработает, а в следующий раз не сработает. Но спасибо за попытку. - person Ann Francis; 09.07.2019
comment
Это результат тестирования, который вы можете увидеть с моей стороны. i.postimg.cc/wBNWT1G9/53.gif - person Deepak-MSFT; 09.07.2019