Reputation: 15038
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
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
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
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