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

4

我使用cordova Geolocation插件来为ionic 2应用程序获取地理位置信息,但是我需要知道GPS是否已启用或禁用。我不知道如何实现这一点。

请帮助我 ;) 谢谢!

2个回答

6

诊断插件提供了许多功能来检查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 ;)! - Ricardo Andres Rodriguez Gambo

1

我对这个插件很满意

http://devfanaticblog.com/background-geolocation-with-apache-cordova/ cordova plugin add cordova-plugin-mauron85-background-geolocation

但对于你需要的功能来说,可能有些过于复杂了。你可以直接调用navigator.geolocation.getCurrentPosition(success[, error[, options]])并检查是否获得了有效结果。

我不确定iPhone如何处理它,但现在Android可能会非常棘手。因为如果您请求使用GPS,则用户将被提示授权。如果他们拒绝了,那么它可能已经启用,但对您不可用。您也无法轻松地确定您获取的精度。您可能会获得Wi-Fi或移动位置,而不是GPS位置。

该插件涵盖了所有这些情况,但它有一个奇怪的错误,即在Android模拟器中无法正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接