Iphone HTML5 Geolocation всегда возвращает ошибку - PullRequest
6 голосов
/ 08 июня 2011

Я пытаюсь использовать html5 geolocation на Iphone, но он всегда возвращает ошибку.

var win = function (position) {alert ('Все хорошо!' + Position)};
var fail = function (e) {alert ('Не могу получить позицию. \ NError:' + e)};
navigator.geolocation.getCurrentPosition (win, fail);

Я тестирую на IOS Simulator и моем устройстве, но не работает.В Safari я просто могу получить свою позицию, используя беспроводное подключение к Интернету (??).

Есть ли способ заставить эту работу?

Ответы [ 2 ]

16 голосов
/ 28 июня 2011

Убедитесь, что ваши службы определения местоположения на устройстве включены для Safari. Перейдите к Настройки> Конфиденциальность> Службы определения местоположения> Safari и убедитесь, что для него установлено значение ON.

Тогда попробуйте этот код:

function doGPS()
{
    try{
        //position request
        navigator.geolocation.getCurrentPosition( function (position) { 
        alert(position.coords.latitude);
        alert(position.coords.longitude);
        });
    }
    catch(evt)
    {
        alert(evt.message);
    }

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

Я использовал js из appMobi, и он отлично работает, если я перезагружаю сайт в Safari на iPhone.Однако приложения с закладками на домашнем экране этого не делают (даже если я добавляю в закладки новую версию в веб-приложении).

Новый js загружается в приложение с закладками в порядке (я добавил всплывающее сообщение сновый запрос каждый раз, когда я обновляю код, просто чтобы убедиться, что веб-приложение загружает новые js), и iPhone запрашивает у меня разрешение на проверку сайта, но ничего не происходит, когда я говорю «да».В то время как в Safari он отображает широту / долготу.

У кого-нибудь была похожая проблема?

ОБНОВЛЕНИЕ: оно работает, но только при первой загрузке страницы - во второй раз через нееотображает «начало», но не отображает широту / долготу ...

if (navigator.geolocation) {
  alert('Geolocation is supported!');
}
else {
  alert('Geolocation is not supported for this Browser/OS version yet.');
}

try{
    //position request
   alert('start');
    navigator.geolocation.getCurrentPosition( function (position) { 
    alert(position.coords.latitude);
    alert(position.coords.longitude);
    });
}
catch(evt)
{
    alert('fail'+evt.message);
}
...