Html navigator "Пользователь запретил геолокацию"

У меня проблема с window.navigator, я получаю код ошибки 1, "Пользователь запретил геолокацию" всякий раз, когда я запускаю следующий код в виде локального файла html:

navigator.geolocation.getCurrentPosition(function(position) {
        console.log(position);
    }, function(positionError) {
        console.log(positionError);
    });

Выход исходит от функции ошибки, positionError содержит:

code: 1
message: "User denied Geolocation"

Этого не происходит, если содержащий html файл обслуживается с некоторого сервера.

Ожидается ли это? Есть ли способ использовать навигатор из локального html? Я пытаюсь написать какое-то мобильное приложение, но я также стараюсь избегать сети, когда это возможно.

спасибо.

Ответы

Ответ 1

Если вы используете хром, ознакомьтесь с нижеприведенным ответом:

HTML 5 Запрос геоданных в Chrome

Похоже, это ограничение безопасности для протокола file. Похоже, вам понадобится локально размещать его на сервере.

Ответ 2

Простой ответ, который сработал у меня, состоял в том, чтобы просто изменить мой URL из

localhost

to

127.0.0.1

Chrome попросил меня подтвердить, что хочу поделиться своими настройками местоположения, и меня не было!

Ответ 3

Просто нажмите на левую сторону URL на маленьком символе "i": - (см. Изображение ниже)

info symbol illustration

Затем проверьте, является ли местоположение "блоком". Измените его на "разрешить", а затем перезагрузите страницу.

Надеюсь это поможет.