Navigator.geolocation үшін ыңғайлылық мәселесі: пайдаланушының орынға сұралатынын қалай білуге ​​болады?

HTML-нің navigator.geolocation -дегі оқиғалар өңдеушісі бар ма?

Мен пайдаланушыға өз мекен-жайын ортақ пайдалануды сұрайтын кейбір мәтінді көрсетіп, олардың орналасу орындарын бөлісуді сұраған жағдайда ғана.

Менде осы код бар, бірақ ол бұзылған.

Бұл бірінші рет тегіс көрінеді, бірақ екінші рет (браузер бұл сенімді сайт екенін білсе, пайдаланушыдан олардың орналасуын бөлісу туралы сұрамайды), бет жүктелгенде, «Орналасқан жеріңізді бөлісу» тез жыпылықтайды, содан кейін жоғалады картаның артында.

   //map.js
    function gpsSuccess() { 
       //We have a location - although we don't know whether this is 
       //because the user has already agreed to share with this domain,
       //or whether they have just this second been asked. 
        $('#sharelocation').hide();
       //load map, etc
    }
    if (navigator.geolocation) {
        watchId = navigator.geolocation.watchPosition(gpsSuccess, gpsFail);
    }   

   //map.html
    <div id="sharelocation">Share your location</div>
    <div id="map" class="hidden"></div>

Пайдаланушыға бетіндегі бетіндегі кейбір нұсқауларды шын мәнінде өз орындарын ортақ пайдалануды сұрайтын болса, кез келген ұсыныс.

2

2 жауаптар

«Қате бөлісу» хабары көрсетілмесе, сәтсіздікке жауап қайтару орындалмайды.

function gpsFail() {
  $('#sharelocation').show();
}

Орналасқан жерді бөлісуді қалай қосу керектігін, ақпаратпен немен айналысатындығын және т.б. түсініктеме бөлігінен хабарды қамтуға болады.

0
қосылды
Бұл жұмыс істемейді, менің ойымша, кем дегенде Chrome браузері пайдаланушыдан жауап күте тұрса, сәтсіздікке қоңырау шалу орындалмайды.
қосылды автор Richard, көзі

GetCurrentPosition мен кері байланыс арасындағы қысқа кідіріспен уақыт мәселесі болуы мүмкін. Шоуды екінші секундта кешіктірсеңіз не болады? (Jquery-specific әдісі не екенін білмеймін) GpsSuccess-де clearTimeout-ге қоңырау шалуыңызға болады.

0
қосылды