我使用cordova Geolocation插件来为ionic 2应用程序获取地理位置信息,但是我需要知道GPS是否已启用或禁用。我不知道如何实现这一点。
请帮助我 ;) 谢谢!
我使用cordova Geolocation插件来为ionic 2应用程序获取地理位置信息,但是我需要知道GPS是否已启用或禁用。我不知道如何实现这一点。
请帮助我 ;) 谢谢!
诊断插件提供了许多功能来检查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);
我对这个插件很满意
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模拟器中无法正常工作。