React Academy · Oppitunti

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

Oppitunti 2/413 vaihetta

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:ää.

Aloita maksutta

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

  1. Clipboard API: kopiointi ja liittäminen Reactissa
  2. Geolocation API React-komponenteissa
  3. Notifications API ja käyttöoikeuksien käsittely
  4. IntersectionObserver vierityksen käynnistämille tehosteille
← Takaisin: React Academy