在 Ionic 中使用 navigator.geolocation 或 $cordovaGeolocation

Posted

技术标签:

【中文标题】在 Ionic 中使用 navigator.geolocation 或 $cordovaGeolocation【英文标题】:Use navigator.geolocation or $cordovaGeolocation in Ionic 【发布时间】:2015-09-01 12:09:22 【问题描述】:

由于我基本上可以通过两种方法获得相同的信息,我想知道哪种方法更受欢迎,使用一种方法比另一种方法有什么优势?

【问题讨论】:

【参考方案1】:

$cordovaGeolocation 是由ionic 开发的纯javascript 插件的角度包装器。现在的问题是为什么要引入 ngCordova,简而言之,将其作为插件服务作为模块处理,并将插件包装器作为对特定控制器或服务的依赖项注入。 在实用层面上,cordova 开发人员在 Angular 项目中遇到了插件问题。一个简单的问题是 $scope 有时不会在简单的插件回调中得到更新。 引用 ionic blog post :

服务支持承诺更容易处理他们的 异步性质并确保正确更新范围数据。

所以我的结论是,你应该选择$cordovaGeolocation

【讨论】:

【参考方案2】:

据我所知,在 android 上,该插件根本不做任何事情,而在 ios 上,它会阻止操作系统一遍又一遍地请求访问位置。

总体而言,该插件完全符合 html5 规范,因此如果您使用该插件,则不应更改调用代码(在 js 中)中的任何内容。

该插件在这里有一个很好的文档:https://github.com/apache/cordova-plugin-geolocation/blob/master/doc/index.md

【讨论】:

嘿menat,您的链接似乎有误。另外,我不太明白你的意思——我应该使用提到的插件 mudasser ajaz 吗?【参考方案3】:

值得注意的是,根据当前和官方的文档(参见cordova geolocation doc),不需要使用$cordovaGeolocation,而是使用全局对象navigator.geolocation。

【讨论】:

以上是关于在 Ionic 中使用 navigator.geolocation 或 $cordovaGeolocation的主要内容,如果未能解决你的问题,请参考以下文章