document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
// onSuccess Geolocation
//
function onSuccess(position) {
latitude = position.coords.latitude;
longitude = position.coords.longitude;
geo();
}
function geo(){
alert("latitude:" + latitude + "longitude:" + longitude);
$('#latitude-input').val(latitude);
$('#longitude-input').val(longitude);
};
// onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
我不希望用户控制应用,直到它计算出纬度和经度。 我希望他们等待加载观看启动画面。
我还有一个问题。 phonegap是否能够知道GPS是否已打开? 我认为函数onError应该发出警告信息,但它没有。
答案 0 :(得分:0)
@jerome,可以按照你的要求去做,但在启动画面消失之前可能是 looong 时间。 GPS无法正常工作。我建议你做很多阅读GPS。你的误解很常见。对不起,我没有任何好文章供你阅读。这篇文章可能适合您,但请尝试Garmin | What is GPS?
与此同时,您可以获得尝试使用我的演示应用程序所需的内容。
Phonegap演示应用
http://codesnippets.altervista.org/examples/phonegap/demos/PUBLIC.Apps.html
你想要结合:
然后转到启动屏幕的config.xml并删除延迟。这一行:
<preference name="SplashScreenDelay" value="5000" />
最后,根据您的问题,如果GPS关闭,并且经常是因为它非常快地耗尽电池,onError()回调将超时。要清楚,您无法检测它是否已打开。当您尝试获取GPS信息时,您将收到错误消息,告诉您它没有及时响应。 (这是一个糟糕的设计,但这就是它的工作原理。)