Use navigator.geolocation or $cordovaGeolocation i

2019-01-28 04:17发布

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?

3条回答
甜甜的少女心
2楼-- · 2019-01-28 04:34

$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.

查看更多
做自己的国王
3楼-- · 2019-01-28 04:35

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

查看更多
三岁会撩人
4楼-- · 2019-01-28 04:38

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.

查看更多
登录 后发表回答