在 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的主要内容,如果未能解决你的问题,请参考以下文章
在 Ionic 2 中,如何创建使用 Ionic 组件的自定义组件?
IONIC 3 无法使用@ionic-native/file-opener 在 Android 中打开 PDF 文件