2013-08-22 2 views
0

Я пытаюсь использовать HTML5 Geolocation на следующем устройстве:поведение HTML5 геолокации на мобильном устройстве Android

  • HTC One X
  • Android 4.1.1
  • WebKit/534,30 (встроенный версия браузера WebKit)

В встроенном браузере и последней версии веб-сайтов Chrome-приложений, использующих API-интерфейс HTML5 Geolocation, вы не сможете найти меня. Тем не менее, Firefox-приложение находит меня в течение нескольких секунд.

Это проблема, поскольку многоплатформенные платформы разработки приложений, например. PhoneGap, используйте WebViews (= встроенный браузер) в качестве контейнера для всего приложения. Кроме того, обычные пользователи не будут пытаться использовать разные браузеры, если веб-приложение не сможет сделать что-то, что оно может сделать.

Моя первая мысль заключалась в том, что мне нужно больше времени, чтобы найти меня, поэтому я установил тайм-аут 5 минут (см. Нижнюю часть сообщения). Но он просто достигнет этого таймаута, не найдя моего местоположения. Если я не устанавливаю тайм-аут, функции обратного вызова никогда не вызываются (я ждал, как час).

Моя вторая мысль заключалась в том, что, возможно, где-то на моем телефоне или в настройках моего браузера сайты, запрашивающие местоположение, были заблокированы. Это оказалось не так.

Итак, моя следующая мысль заключается в том, что, возможно, это проблема программирования в том смысле, что браузеры не следуют стандартам W3C, так что их API могут работать по-другому. Если да, то как мне получить местоположение на этом устройстве/в этих браузерах?

Поскольку даже хорошо закодированные веб-сайты, такие как Google, не могут получить мое местоположение в этих браузерах с использованием этого API, это может быть не проблема программирования. Если это действительно не так, на каком веб-сайте StackExchange я должен консультироваться? (Например, в случае, если это проблема устройства?)

API-интерфейс я использую (MDN):

navigator.geolocation.getCurrentPosition(success, error, options); 

// Where success and error are callbacks and the options object may contain: 
// enableHighAccuracy - boolean, speaks for itself 
// timeout - maximum amount of milliseconds before one of the callbacks is called 
// maximumAge - maximum age in milliseconds of cached location 

ответ

0

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

Я пробовал вариант enableHighAccuracy: true, но это не имело никакого значения в моем случае. Тем не менее, это имело большое значение для других телефонов с точки зрения точности.

0

Привет, У меня была аналогичная проблема на одном устройстве:

I установить его в качестве:

{enableHighAccuracy: true}. 

Владимир

+0

Я пробовал вариант enableHighAccuracy: true, но это не имело никакого значения в моем случае. –

Смежные вопросы