Телефонная связь включает 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
});
}