如何使用 Ionic2(地理定位)检查 GPS 是不是启用?

Posted

技术标签:

【中文标题】如何使用 Ionic2(地理定位)检查 GPS 是不是启用?【英文标题】:How to check GPS is enable or not with Ionic2 (Geolocation)?如何使用 Ionic2(地理定位)检查 GPS 是否启用? 【发布时间】:2017-06-26 21:04:10 【问题描述】:

我为 ionic 2 使用插件 cordova Geolocation 但我需要知道 GPS 是启用还是禁用。不知道怎么弄的。

请帮助我;)谢谢!

【问题讨论】:

【参考方案1】:

diagnostic plugin 具有许多功能,可以检查 GPS 模式、位置状态等。查看包含的链接以了解更多信息。

import  Diagnostic  from '@ionic-native/diagnostic';

constructor(private diagnostic: Diagnostic)  

...

let successCallback = (isAvailable) =>  console.log('Is available? ' + isAvailable); ;
let errorCallback = (e) => console.error(e);

this.diagnostic.isLocationEnabled().then(successCallback).catch(errorCallback);

// only android
this.diagnostic.isGpsLocationEnabled().then(successCallback, errorCallback);

您还可以使用location-accuracy 插件,它更轻,但它缺少诊断插件上可用的其他选项。我目前正在使用这个插件在 android 上启用 gps 并设置模式。我建议也看看这个插件的文档。

【讨论】:

非常感谢 Alberick0 ;) !【参考方案2】:

这个插件我很幸运 http://devfanaticblog.com/background-geolocation-with-apache-cordova/ cordova plugin add cordova-plugin-mauron85-background-geolocation

不过,对于您需要的东西来说,这可能是极端的矫枉过正。您可以随时调用 getcurrentposition() 并检查您是否得到有效结果。

navigator.geolocation.getCurrentPosition(success[, error[, options]])

我不确定 iPhone 是如何对待它的,但 Android 现在可能是彻头彻尾的邪恶。因为如果您要求使用 GPS,系统会提示用户授予其 GPS 权限。如果他们选择否,那么它可能已启用,但您无法使用。您也不能轻易说出您获得的精度。您可能会获取 wifi 或移动位置而不是 GPS 位置。

这个插件涵盖了所有这些场景,但是,它有一个奇怪的错误,它不能在 android 模拟器中正常工作。

【讨论】:

以上是关于如何使用 Ionic2(地理定位)检查 GPS 是不是启用?的主要内容,如果未能解决你的问题,请参考以下文章

组合地理定位框架

ionic2:浏览器中的地理定位失败并出现错误:异常:未捕获(承诺中):错误

ng-cordova 地理定位插件在通知栏中不显示 GPS 图标

PhoneGap 地理定位器使用 WiFi 而不是 GPS

iPhone如何进行地理定位?

Cordova 地理定位插件问题