Ошибка геолокации в телефонной пробке: тайм-аут - PullRequest
8 голосов
/ 21 ноября 2011

Я получил последнюю версию PhoneGap 1.2 и поместил тестовый код из документации в мое приложение. Когда я запускаю свое приложение как на симуляторе (xcode 4.2 simulator 5.0), так и на iPad под управлением 5, я получаю ошибку «Ошибка геолокации: время ожидания».

Кто-нибудь еще испытывал это? Вот мой код:

document.addEventListener("deviceready", onDeviceReady, false);
        // PhoneGap is ready
        function onDeviceReady() {
        var myOptions = { enableHighAccuracy: true };
        navigator.geolocation.getCurrentPosition(onSuccess, onError,myOptions);}

Спасибо!

Ответы [ 3 ]

0 голосов
/ 27 ноября 2011

Ответ от iMayur показывает, что работает неродной API геолокации. Если вы в первый раз вызываете этот скрипт на iphone, вам будет задан «вопрос о доступе к геолокации» из браузеров HTML5 API.

Я думаю, что здесь есть еще одна проблема в телефонном зазоре: Issuetracker # 197

[EDIT]

Открыт новый выпуск: Issuetracker # 304

0 голосов
/ 10 августа 2012

Не знаю, исправили ли они это для вас.Теперь предположим, что ваш код правильный: navigator.geolocation.getCurrentPosition (onSuccess, onError, {'enableHighAccuracy': true, 'timeout': 10000});Добавьте часть тайм-аута, и она больше не выдаст ошибку тайм-аута.

0 голосов
/ 24 ноября 2011

Я думаю, что вы пропали из-за проблемы импорта файла скрипта. Вам нужно импортировать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...