显示启动画面,直到获得纬度和经度(phonegap)

showing splash screen until latitude and longitude are got (phonegap)

        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 应该发出警报消息,但它没有。

@jerome,可以按照您的要求进行操作,但启动画面消失可能需要 looong 时间。 GPS 不能那样工作。我建议你多读读 GPS。你的误解很常见。很抱歉,我没有任何好文章供您阅读。这篇文章可能对您来说是技术性的,但请尝试一下 Garmin | What is GPS?

在此期间,您可以使用我的演示应用程序获得您需要尝试的内容。

Phonegap 演示应用程序

http://codesnippets.altervista.org/examples/phonegap/demos/PUBLIC.Apps.html

你会想要合并:

  • Phonegap-GPS-测试
  • Phonegap-Splashscreen-测试

然后转到 config.xml 启动画面并删除延迟。这一行:

 <preference name="SplashScreenDelay" value="5000" />

最后,关于你的问题,如果GPS关闭,而且经常是因为它耗电很快,onError()回调会超时。需要明确的是,您无法检测到它是否打开。当您尝试获取 GPS 信息时,您会收到一个错误消息,告诉您它没有及时响应。 (这是一个糟糕的设计,但这就是它的工作原理。)