Поставщик геолокации для Firefox, который позволяет ручной ввод

Ну, с одной стороны, если Вы ВОЗВРАТИТЕСЬ в своем блоке попытки, то наконец будет все еще работать, но код упомянул ниже try-catch-finally блок, не будет.

17
задан Ryu 1 December 2009 в 20:00
поделиться

3 ответа

geo.wifi.uri не обязательно должен быть веб-сервисом. Вы также можете установить его в локальный uri с помощью file://...

Файл должен быть json-файлом с таким содержанием:

{"location": {
              "latitude": 48.777025000000002, 
              "longitude": 9.1713909999999998, 
              "accuracy": 10.0}}

Обновление:. Для Firefox 9+ формат изменился:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {"lat": 48.777, "lng": 9.171}
}

Или вы можете объединить их для поддержки обоих:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {
        "lat": 48.777,
        "lng": 9.171,
        "latitude": 48.777,
        "longitude": 9.171,
        "accuracy": 10.0
    }
}

Обновление:, похоже, что ручная настройка этого предпочтения блокируется провайдером, предполагающим службу Google. Смотрите Ошибка 716453 Обновление 2: geo.wifi.uri not geo.wifi.url

.
12
ответ дан 30 November 2019 в 12:27
поделиться

Хммм, вы не можете имитировать navigator.geolocation напрямую - возможно, вы можете реорганизовать свой код, который использует его для использования другого объекта, например customGeoLocation .

В производстве вы можете просто установить customGeoLocation на navigator.geolocation , а в тестах использовать фиктивную реализацию любой используемой вами функциональности.

EDIT: Оказывается, вы можете заменить функции в объекте navigator.geolocation , но это все равно бесполезно, если вы используете фиктивную библиотеку (например, JsMock), которая должна создать фиктивный объект. Таким образом, вы не сможете заменить navigator.geolocation на макет.

Вы можете издеваться над собой следующим образом:

var getCurrentPositionCalled = false;
navigator.geolocation.getCurrentPosition = function() { 
  getCurrentPositionCalled = true; 
};

//Your app code here
//...
assert(getCurrentPositionCalled);
0
ответ дан 30 November 2019 в 12:27
поделиться

Geolocater - экспериментальное дополнение, позволяющее редактировать геолокацию.

5
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: