Nikola
Nikola

Reputation: 15038

Use navigator.geolocation or $cordovaGeolocation in Ionic

Since I basically can get the same info with both approaches, I'm wondering which is the preferred one and what are the advantages using one over the other?

Upvotes: 4

Views: 2057

Answers (3)

Ivan Aranibar
Ivan Aranibar

Reputation: 2286

It is worth noting that according to the current and oficial documentation (see cordova geolocation doc), there is no need to use $cordovaGeolocation, but rather the global object navigator.geolocation.

Upvotes: 1

Mudasser Ajaz
Mudasser Ajaz

Reputation: 6257

$cordovaGeolocation is angular wrapper over plain javascript plugin, developed by ionic. Now question is why ngCordova was introduced,in simple words to deal it as plugin service as module and inject plugin wrapper as dependency to only particular controller or service.
On Pratical level, cordova developers were having issues with plugins on angular project. One simple issue was that $scope does not get updated sometimes in simple plugins callback.
Quoting from ionic blog post :

The services support promises to make it easier to deal with their asynchronous nature and ensure scope data is properly updated.

So my conclusion is, you should go with $cordovaGeolocation.

Upvotes: 5

mentat
mentat

Reputation: 2768

As far as I remember, on Android that plugin does not do anything at all, and on iOS it prevents the OS asking for access to location over and over.

Overall the plugin totally conforms the html5 specs, so you shouldn't change anything in your calling code (in js) if you use the plugin.

And the plugin has a good documentation here: https://github.com/apache/cordova-plugin-geolocation/blob/master/doc/index.md

Upvotes: 2

Related Questions