2014-02-07 4 views
1

Я использовал для geo: uri для открытия карты данного лата, долго в собственном приложении. Я тестировал в android, но возникает следующая проблема: при первом щелчке ссылки открывается текущее местоположение пользователя, но когда вторая ссылка нажата во второй раз, она работает, как ожидалось.Телефонная геолокация не работает при первом щелчке

код выглядит просто следующим образом:

var url = device.platform == 'Android' ? 'geo:'+Lat+','+Long+"?q="+Lat+','+Long+'('+Name+')' 

полный Javascript код выглядит следующим образом:

document.addEventListener('deviceready', dready,false); 

    function dready() 
    { 
     $("#SearchResults").html(sessionStorage.Business); 
     var url = device.platform == 'Android' ? 'geo:'+sessionStorage.BusinessLat+','+sessionStorage.BusinessLong+"?q="+sessionStorage.BusinessLat+','+sessionStorage.BusinessLong+'('+ sessionStorage.BusinessName+')' : 'comgooglemaps://'+sessionStorage.BusinessLat+','+sessionStorage.BusinessLong; 

     $("#MapLink").attr('href',url); 
    } 

как сказано, шнуры установлены правильно, но появляются при нажатии во второй раз и не первый

+0

В чем проблема? – MBillau

+1

, когда ссылка нажата в первый раз, открывается местоположение пользователя/устройства, а не фактические координаты. однако он работает так, как ожидается, когда ссылка будет нажата во второй раз и так далее. –

+0

Можете ли вы предоставить больше кода о том, как вы устанавливаете lat/long coords? – MBillau

ответ

0

Это решит вашу проблему. Немного взломан, но работает.

setTimeout(function(){ if(Lat === 0){ location.reload(); } }, 1000); 

В принципе говоря, если Ваша широта равна 0 (невыполнению на получение кордов) перезагрузите страницу. Убедитесь, что вызов сделан в setTimeout 1 секунда.

Смежные вопросы