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

How to check GPS is enable or not with Ionic2 (Geolocation)?

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

请帮助我 ;) 谢谢!

我很幸运地使用了这个插件 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 模拟器中无法正常工作。

diagnostic plugin 为您提供许多检查 GPS 模式、位置状态等的功能。查看随附的 link 以了解更多信息。

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 并设置模式。我建议也看看这个插件的文档。