Phonegap 地理定位错误:超时

8
我已经获得了最新的PhoneGap 1.2,并在我的应用程序中添加了文档中的测试代码。当我在模拟器(Xcode 4.2 模拟器 5.0)和运行 5 的 iPad 上运行我的应用程序时,出现错误“地理位置错误:超时”。有其他人也遇到过这个问题吗?以下是我的代码:
document.addEventListener("deviceready", onDeviceReady, false);
        // PhoneGap is ready
        function onDeviceReady() {
        var myOptions = { enableHighAccuracy: true };
        navigator.geolocation.getCurrentPosition(onSuccess, onError,myOptions);}

谢谢!

3个回答

0
iMayur的回答表明非本地地理位置API正在工作。如果您在iPhone上第一次调用此脚本,则将从浏览器的HTML5 API中询问“地理位置访问问题”。
我认为PhoneGap存在更大的问题:Issuetracker #197 [编辑]
有一个新问题已经打开:Issuetracker #304

0

不知道他们是否已经为您修复了它。 现在假设您的代码是正确的: navigator.geolocation.getCurrentPosition(onSuccess, onError,{'enableHighAccuracy':true,'timeout':10000}); 添加超时部分,它就不应该再出现超时错误了。


0

我认为你在脚本文件导入问题上出了错。你需要导入phonegap-1.2.0.js而不是phonegap.js

以下代码片段适用于iOS 5模拟器和设备。

<!DOCTYPE html>
<html>
    <head>
        <title>Device Properties Example</title>
        <script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script>
        <script type="text/javascript" charset="utf-8">
            // Wait for PhoneGap to load
            document.addEventListener("deviceready", onDeviceReady, false);
            // PhoneGap is ready
            function onDeviceReady() {
                 var myOptions = { enableHighAccuracy: true };
                navigator.geolocation.getCurrentPosition(onSuccess, onError,myOptions);
            }
            // onSuccess Geolocation
            function onSuccess(position) {
                var element = document.getElementById('geolocation');
                element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br>' +
                'Longitude: '          + position.coords.longitude             + '<br>' +
                'Altitude: '           + position.coords.altitude              + '<br>' +
                'Accuracy: '           + position.coords.accuracy              + '<br>' +
                'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br>' +
                'Heading: '            + position.coords.heading               + '<br>' +
                'Speed: '              + position.coords.speed                 + '<br>' +
                'Timestamp: '          + new Date(position.timestamp)          + '<br>';
            }
            // onError Callback receives a PositionError object
            function onError(error) {
                alert('code: '    + error.code    + '\n' +
                      'message: ' + error.message + '\n');
            }
            </script>
    </head>
    <body>
        <p id="geolocation">Finding geolocation...</p>
    </body>
</html>

如果您正在使用PhoneGap Build,则导入phonegap.js实际上是可以的:Build会将最新的稳定版本嵌入到phonegap.js和phonegap-x.y.z.js中。 - David Dossot

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