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

Я разработал приложение, которое сохраняет пользовательское событие и местоположение по нажатию кнопки.Это приложение отлично работает в других браузерах, кроме 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(); 
}  

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

1 Ответ

0 голосов
/ 09 июля 2019

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

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

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

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

(1) Пользователь должен перейти к Настройки и многое другое -> Настройки -> Дополнительно -> Управление разрешениями

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

(3) Включите переключатель положения.

enter image description here

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

...