Клуб API Карт

Странное поведение geolocation.get().then.

easy-money5
6 марта 2015, 12:49

  Пробую узнать местоположение пользоваеля через geolocation.get(...).then(onFullfilled, onReject), provider: 'auto', mapStateAutoApply: true.

  После соответствующего вызова показывается запрос браузера на сообщение местоположения. Если дать согласие, то все происходит как и должно.

  Но если отказать, то под Firefox (36.0) сначала проходит время равное options.timeout, а потом все-равно вызывается функция успешного завершения(onFullfilled). А под Chrome (40.0.2214.115 m) тоже самое происходит без задержки.

  И в обоих случаях результат содержит координаты, хотя пользователь отказался их сообщать.

 

  При отказе должен вызываться обработчик onReject. Ну или, на крайний случай, результат должен быть пустым.

3 комментария
Подписаться на комментарии к посту
Видимо надо указать provider: "browser"

  С provider: "browser" при отказе onReject срабатывает. И также под Firefox только через timeout-времени.

 

  Но проблема остается: если пользователь отказался сообщать свои координаты, то они не должны определятся.

  Свойство provider должно устанавливать механизм определения координат пользователя, но не разрешение на его выполнение, т.к. это вопрос приватности пользователя.

  И, например, при provider: "yandex" должно тоже вываливаться окошко с разрешением определения координаты.

 

Вопрос остается открытым.