如何使用 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:浏览器中的地理定位失败并出现错误:异常:未捕获(承诺中):错误