Geolocation API React-komponenteissa
Pyytäkää ja seuratkaa käyttäjän sijaintia Geolocation API:lla, käsitelkää käyttöoikeudet ja poistakaa seuranta käytöstä asianmukaisesti
Geolocation API React-komponenteissa on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.
Sijainnin lukeminen kerran
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options) pyytää laitteen sijainnin kerran. Onnistumisen takaisinkutsu vastaanottaa GeolocationPosition-objektin. Tämä sopii tilanteisiin, joissa sijaintia tarvitaan vain kerran, esimerkiksi lähimmän myymälän etsimiseen painiketta napsautettaessa, eikä jatkuvan liikkumisen seuraamiseen.
Sijainnin jatkuva seuranta
navigator.geolocation.watchPosition(successCallback, errorCallback, options) kutsuu takaisinkutsua jatkuvasti aina, kun laitteen sijainti muuttuu. Se palauttaa numeerisen watchId-tunnisteen. Tämä sopii reaaliaikaisiin käyttötapauksiin, kuten toimitusten seurantaan tai käännös käännökseltä -navigointiin, jossa sijainnin on pysyttävä ajan tasalla.
Sijaintiobjekti
GeolocationPosition-objekti sisältää coords-ominaisuuden, jossa ovat latitude, longitude ja accuracy (metreinä). Muita valinnaisia kenttiä ovat altitude, altitudeAccuracy, heading ja speed. timestamp-kenttä tallentaa ajan, jolloin sijainti määritettiin.
Geolocation-virhekoodit
Virhetakaisinkutsu vastaanottaa GeolocationPositionError-objektin, jolla on numeerinen code-ominaisuus. Koodi 1 on PERMISSION_DENIED (käyttäjä kieltäytyi), koodi 2 on POSITION_UNAVAILABLE (laitteisto- tai verkkohäiriö) ja koodi 3 on TIMEOUT (pyyntö kesti liian kauan). Käsitelkää aina kaikki kolme tapausta.
Seurannan lopettaminen siivouksessa
watchPosition-kuuntelija toimii jatkuvasti, kunnes pysäytätte sen. Palauttakaa useEffect-funktiossa siivousfunktio, joka kutsuu navigator.geolocation.clearWatch(watchId)-funktiota. Jos siivous unohtuu, seuranta jatkuu komponentin poistamisen jälkeen, kuluttaa akkua ja saattaa päivittää poistettua tilaa.
useGeolocation-hookin rakentaminen
useGeolocation-hook hallitsee tilaa, jolla on neljä mahdollista arvoa: idle (pyyntöä ei ole vielä tehty), loading (pyyntöä käsitellään), success (sijainti vastaanotettu) ja error (pyyntö epäonnistui). Se säilyttää tilassa myös position- ja errorMessage-arvot. Komponentit saavat selkeän ja yhdenmukaisen rajapinnan.
Käyttöoikeuden epäämisen hallittu käsittely
Kun käyttäjä kieltää geolocationin käytön, näyttäkää hyödyllinen viesti, jossa selitetään, miksi ominaisuus tarvitsee sijaintitiedot ja miten käyttöoikeus voidaan ottaa uudelleen käyttöön selaimen asetuksissa. Älkää näyttäkö käyttäjille raakaa virhekoodia. Tarjotkaa osoitteen manuaalinen syöttäminen varavaihtoehtona, jotta ominaisuutta voi käyttää ilman sijaintilupaa.
Geolocationin HTTPS-vaatimus
Useimpien tehokkaiden selain-API:en tavoin geolocation on rajoitettu suojattuihin konteksteihin. navigator.geolocation on undefined tavallisilla HTTP-sivuilla. Kehityksen aikana se toimii localhost-osoitteessa ilman HTTPS:ää. Varmistakaa tuotannossa aina, että sovellusta tarjotaan HTTPS:n kautta, muuten käyttäjiltä ei koskaan pyydetä käyttöoikeutta.
Tarkkuus- ja ajoitusasetukset
getCurrentPosition- ja watchPosition-funktioiden valinnainen kolmas argumentti hyväksyy asetuskohteen. enableHighAccuracy: true pyytää GPS-tasoista tarkkuutta suuremman virrankulutuksen kustannuksella. timeout määrittää enimmäisajan millisekunteina. maximumAge sallii välimuistissa olevan sijainnin käytön, jos se on määritetty annetun millisekuntimäärän kuluessa.
Käytännön käyttötapaukset
Geolocation mahdollistaa esimerkiksi ominaisuudet "etsi lähelläni oleva myymälä", toimituskuljettajan seurannan kartalla, nykyiseen kaupunkiin perustuvan sään, sijainnilla merkittyjen julkaisujen ja käyttäjän sekä määränpään välisten etäisyyksien laskemisen. Viestikää käyttäjille aina selkeästi, miksi sovellus tarvitsee heidän sijaintinsa, ennen kuin pyydätte käyttöoikeutta.
Geolocationin testaaminen kehityksessä
Chrome DevToolsin avulla voitte määrittää laitteen valesijainnin. Avatkaa DevTools, siirtykää kolmen pisteen valikkoon ja valitkaa Lisää työkaluja sekä Sensorit. Voitte syöttää leveys- ja pituusasteen koordinaatit ja simuloida mitä tahansa sijaintia. Tämä on paljon nopeampaa kuin matkustaa fyysisesti eri paikkaan sijainnista riippuvien ominaisuuksien testaamista varten.
Geolocation-virhekoodit
Mitä GeolocationPositionError-koodi 1 tarkoittaa?
Oppitunnin kertaus: Geolocation API Reactissa
Käyttäkää getCurrentPosition-funktiota sijainnin lukemiseen kerran ja watchPosition-funktiota jatkuvaan seurantaan. Kutsukaa aina clearWatch-funktiota useEffectin siivousfunktiossa. Rakentakaa useGeolocation-hook, jossa ovat idle-, loading-, success- ja error-tilat. Käsitelkää käyttöoikeuden epääminen hallitusti ja muistakaa, että geolocation edellyttää tuotannossa HTTPS:ää.
Opi React tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 88
- Oppitunnit
- 324
Usein kysytyt kysymykset
Onko oppitunti ”Geolocation API React-komponenteissa” ilmainen?
Kyllä – oppitunnin ”Geolocation API React-komponenteissa” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Geolocation API React-komponenteissa”?
Pyytäkää ja seuratkaa käyttäjän sijaintia Geolocation API:lla, käsitelkää käyttöoikeudet ja poistakaa seuranta käytöstä asianmukaisesti Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Geolocation API React-komponenteissa”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?
Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Clipboard API: kopiointi ja liittäminen Reactissa
- Geolocation API React-komponenteissa
- Notifications API ja käyttöoikeuksien käsittely
- IntersectionObserver vierityksen käynnistämille tehosteille