0Pricing
React Academy · Lezione

Geolocation API nei componenti React

Richiedere e monitorare la posizione dell'utente con la Geolocation API, gestire i permessi e ripulire i watcher

Geolocation API nei componenti React è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Lettura singola della posizione

navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options) richiede una volta la posizione del dispositivo. Il callback di successo riceve un oggetto GeolocationPosition. È appropriato quando serve conoscere la posizione una sola volta, ad esempio per trovare il negozio più vicino dopo un clic su un pulsante, anziché monitorare gli spostamenti continui.

Monitoraggio continuo della posizione

navigator.geolocation.watchPosition(successCallback, errorCallback, options) esegue continuamente il callback ogni volta che cambia la posizione del dispositivo. Restituisce un valore numerico watchId. È adatto a casi d'uso in tempo reale, come il monitoraggio delle consegne o la navigazione turn-by-turn, in cui la posizione deve rimanere aggiornata.

L'oggetto della posizione

L'oggetto GeolocationPosition contiene una proprietà coords con latitude, longitude e accuracy (in metri). Tra i campi opzionali aggiuntivi vi sono altitude, altitudeAccuracy, heading e speed. Il campo timestamp indica quando è stata acquisita la posizione.

Codici di errore della geolocalizzazione

Il callback di errore riceve un oggetto GeolocationPositionError con una proprietà numerica code. Il codice 1 è PERMISSION_DENIED (l'utente ha rifiutato), il codice 2 è POSITION_UNAVAILABLE (errore hardware o di rete) e il codice 3 è TIMEOUT (la richiesta ha impiegato troppo tempo). Gestisca sempre tutti e tre i casi.

Cancellare il monitoraggio durante la pulizia

Un listener di watchPosition rimane attivo indefinitamente finché non viene arrestato. In useEffect, restituisca una funzione di pulizia che chiami navigator.geolocation.clearWatch(watchId). Se dimentica la pulizia, il monitoraggio continua anche dopo lo smontaggio del componente, consumando la batteria e potenzialmente aggiornando uno stato non più montato.

Creare l'hook useGeolocation

Un hook useGeolocation gestisce uno stato con quattro possibili valori: idle (richiesta non ancora effettuata), loading (richiesta in corso), success (posizione ricevuta) ed error (operazione non riuscita). Mantiene inoltre nello stato position e errorMessage. I componenti ricevono così un'interfaccia chiara e coerente.

Gestire con chiarezza il rifiuto dell'autorizzazione

Quando l'utente nega l'accesso alla geolocalizzazione, mostri un messaggio utile che spieghi perché la funzionalità richiede l'accesso alla posizione e come riattivarlo nelle impostazioni del browser. Non mostri mai agli utenti un codice di errore grezzo. Offra un'alternativa per inserire manualmente l'indirizzo, così la funzionalità rimane utilizzabile anche senza l'autorizzazione alla posizione.

Requisito HTTPS per la geolocalizzazione

Come la maggior parte delle API browser avanzate, la geolocalizzazione è limitata ai contesti sicuri. navigator.geolocation è undefined nelle pagine HTTP non sicure. Durante lo sviluppo su localhost funziona anche senza HTTPS. In produzione, si assicuri sempre che l'applicazione venga servita tramite HTTPS, altrimenti agli utenti non verrà mai mostrata la richiesta di autorizzazione.

Opzioni di precisione e temporizzazione

Il terzo argomento opzionale di getCurrentPosition e watchPosition accetta un oggetto di opzioni. enableHighAccuracy: true richiede una precisione pari a quella del GPS, consumando però più energia. timeout imposta il numero massimo di millisecondi di attesa. maximumAge consente di usare una posizione memorizzata nella cache se è stata acquisita entro il numero di millisecondi specificato.

Casi d'uso nel mondo reale

La geolocalizzazione consente funzionalità come "trovare un negozio vicino a me", il monitoraggio su una mappa dei corrieri incaricati delle consegne, le previsioni del tempo basate sulla città corrente, i post associati a una posizione e il calcolo della distanza tra l'utente e una destinazione. Comunichi sempre con chiarezza agli utenti perché l'applicazione richiede la loro posizione prima di chiedere l'autorizzazione.

Testare la geolocalizzazione durante lo sviluppo

Chrome DevTools consente di impostare una posizione del dispositivo simulata. Apra DevTools, vada al menu con i tre puntini, selezioni More tools, quindi Sensors. Può inserire le coordinate di latitudine e longitudine per simulare qualsiasi posizione. È molto più rapido che spostarsi fisicamente per testare funzionalità dipendenti dalla posizione.

Codici di errore della geolocalizzazione

Che cosa significa un codice 1 di GeolocationPositionError?

Riepilogo della lezione: Geolocation API in React

Utilizzi getCurrentPosition per una lettura singola e watchPosition per il monitoraggio continuo. Chiami sempre clearWatch nella funzione di pulizia di useEffect. Crei un hook useGeolocation con gli stati idle, loading, success ed error. Gestisca con chiarezza il rifiuto dell'autorizzazione e ricordi che in produzione la geolocalizzazione richiede HTTPS.

Domande Frequenti

La lezione «Geolocation API nei componenti React» è gratuita?

Sì — il testo completo di «Geolocation API nei componenti React» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «Geolocation API nei componenti React»?

Richiedere e monitorare la posizione dell'utente con la Geolocation API, gestire i permessi e ripulire i watcher Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Geolocation API nei componenti React»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Clipboard API: copiare e incollare in React
  2. Geolocation API nei componenti React
  3. Notifications API e gestione dei permessi
  4. IntersectionObserver per effetti attivati dallo scorrimento
← Torna a React Academy