Телефонная связь включает GPS/местоположение во время работы приложения

Я использую jquery-ui-maps и геолокацию HTML5, чтобы показать пользователю список местоположений, и мне нужно использовать пользовательскую геолокацию.

Итак, вот прецедент,

  • У пользователя нет служб GPS/Location Services.
  • Пользователь открывает приложение и переходит к представлению, которое вызывает navigator.geolocation, чтобы получить позицию пользователя.
  • Ошибка приложения и уведомляет пользователя о необходимости включения служб GPS/Location
  • Затем пользователь переходит из приложения и включает GPS
  • Когда пользователь вернется в приложение и попытается просмотреть карту (снова вызовет геолокацию), приложение все еще не может использовать GPS.

Я считаю, что я сузил его до того, что стал проблемой Phonegap, когда разрешения GPS инициализируются при загрузке приложения и никогда не переоцениваются.

Мой вопрос: может ли GPS быть включен во время работы приложения или требуется Phonegap для перезагрузки приложения для использования GPS?

Ответ 1

Phonegap поддерживает обновление GPS в реальном времени.

Вот прямая ссылка:

http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#geolocation.watchPosition

В общем, это называется "положение часов", и вы можете сами установить таймер обновления.

Относительно включения GPS во время выполнения.

Попробуйте просто позвонить navigator.geolocation.watchPosition().

Не забудьте также предоставить доступ к геолокации в файле config.xml, но я думаю, вы знаете, что;)

Я надеюсь, что это помогло.

Ответ 2

после некоторого времени я нашел плагин, который смог помочь мне с той же проблемой

https://github.com/nishantsharmajecrc/cordova-dialog-gps

  function calldialog() {
 document.addEventListener("deviceready",function() {
 cordova.dialogGPS("Your GPS is Disabled, this app needs to be enable to          works.",//message
            "Use GPS, with wifi or 3G.",//description
            function(buttonIndex){//callback
              switch(buttonIndex) {
                case 0: break;//cancel
                case 1: break;//neutro option
                case 2: break;//user go to configuration
              }},
              "Please Turn on GPS",//title
              ["Cancel","Later","Go"]);//buttons
  });
  }