I've been dabbling with hybrid app development using Cordova (an extendable web view wrapper for those who haven't used it). One thing that I've noticed is that whenever I request the user's location with window.geolocation
, the location fix almost always takes longer compared to a native app.
For instance, it will take 5 or 6 seconds to get a suitable fix with window.geolocation
from a "cold start", but the Google Maps app will pan to my location within 2 seconds or less. The same seems to happen with other native apps. This is kind of confusing as I'd imagine they both source data from the underlying Android API. Is there some sort of magic configuration option or caching strategy that I'm missing out on as a web-focused developer?
Late to the party, but
navigator.geolocation
methods do not use any of the native APIs, that is why it is slower. It uses the WebView implementation of the device.Also, I recently found out that accuracy gets capped at 10 meters no matter how good your GPS is.
The only fix is to use native code