我正在使用cordova开发一个应用程序,并发现需要获取用户的纬度和经度数据,但我的应用程序将脱机使用(无法访问互联网)。
我有两个问题:
1 - 如何检查设备是否处于活动状态?
2 - 如何在没有互联网连接的情况下使经纬度脱机?有可能吗?
答案 0 :(得分:6)
我会尽力回答你:
1.-您可以使用PhoneGap GeoLication API检查位置,以及启用GPS。检查一下:Use PhoneGap to Check if GPS is enabled
2.-是的,GPS是一个卫星系统,可让您的设备跟踪它在地球上的当前位置。它独立于您的手机操作员,然后来自Internet连接。然后,您的设备将能够知道它的位置。 HTML5 offline mode and geolocation
此外,您可能需要互联网连接才能显示地图。离线地图没有太多解决方案。只是工匠的:http://davidrs.com/wp/phonegap-3-0-leaflet-offline-maps/
希望有所帮助
记住:打开平面模式时,大多数设备也会关闭GPS天线。
答案 1 :(得分:1)
要检查GPS是否可用,您可以使用此diagnostic plugin - 适用于Android和iOS。它还可用于显示本机位置设置屏幕,以允许用户启用位置服务。例如:
cordova.plugins.diagnostic.isLocationEnabled(function(enabled){
console.log("GPS is "+(enabled ? "enabled" : "disabled");
if(!enabled){
cordova.plugins.diagnostic.switchToLocationSettings();
}
},function(error){
console.error("An error occurred: "+ error);
});
正如另一个答案所述,您可以使用GPS接收用户的位置而无需使用地理位置API进行互联网连接,但如果您想要显示地图,则需要一个不依赖于在线的自定义解决方案谷歌等地图。
如果要在离线状态下记录用户的位置,可以将此信息在本地永久存储中脱机存储,并在用户再次连接互联网时上传。您可以使用类似lawnchair的内容进行存储。
答案 2 :(得分:0)
如果它使用硬件gps模块,则可以使用geolocationOptions进行控制:
navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: true });
然后,当您的手机准备好GPS时,无需网络即可获取GPS信息。
enableHighAccuracy:提示应用程序需要 最好的结果。默认情况下,设备会尝试检索 使用基于网络的方法进行定位。将此属性设置为true 告诉框架使用更准确的方法,例如卫星 定位。 (布尔值)