在 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的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 - 是啥让这段代码得到国家而不是城市?

在 Ionic 2 中,如何创建使用 Ionic 组件的自定义组件?

如何在 Ionic + Vue 中使用开发服务器代理?

IONIC 3 无法使用@ionic-native/file-opener 在 Android 中打开 PDF 文件

如何在 ionic 4 中使用 alertcontroller 返回承诺?

尝试从我将 lat & long 数据放入的 URL 中获取 JSON 时脚本不起作用