Phonegap enable GPS/Location at app runtime

mondeeds picture mondeeds · Nov 4, 2013 · Viewed 24k times · Source

I am using jquery-ui-maps and HTML5 geolocation to show to the user a list of locations and I need to leverage the user's geolocation.

So, here is the use case,

  1. User does not have GPS/Location Services enabled.
  2. User opens the application and navigates to the view that calls navigator.geolocation to get the user's position
  3. The app errors out and notifies the user they must enable GPS/Location Services
  4. The user then navigates out of the app and enables GPS
  5. When the user comes back to the app and tries to view the map (calling the geolocation again) the app still isn't able to use GPS.

I believe I have narrowed it down to being a Phonegap issue where the GPS permissions are initialized at app load and never reevaluated.

My question is, can GPS be enabled during the runtime of the application or does Phonegap require an app reload to use the GPS?

Answer

Daniel picture Daniel · Nov 5, 2013

Phonegap does support realtime update of your GPS.

Here is a direct link:

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

In general its called "watch position", and you can set the refresh timer yourself.

Regarding enabling the GPS during runtime.

Try just to call navigator.geolocation.watchPosition().

Remember to grant access to geolocation on your config.xml as well, but I guess you know that ;)

I hope it helped.