0Pricing
React Academy · Pelajaran

Geolocation API dalam Komponen React

Minta dan lacak lokasi pengguna dengan Geolocation API, tangani izin, lalu bersihkan pemantau.

Geolocation API dalam Komponen React adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Pembacaan Lokasi Sekali

navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options) meminta lokasi perangkat satu kali. Fungsi panggilan balik keberhasilan menerima objek GeolocationPosition. Cara ini sesuai ketika Anda hanya memerlukan lokasi satu kali, misalnya untuk menemukan toko terdekat saat tombol diklik, bukan untuk melacak pergerakan yang terus berlangsung.

Pelacakan Lokasi Berkelanjutan

navigator.geolocation.watchPosition(successCallback, errorCallback, options) terus memanggil fungsi panggilan balik setiap kali posisi perangkat berubah. Fungsi ini mengembalikan angka watchId. Cara ini sesuai untuk penggunaan waktu nyata, seperti pelacakan pengiriman atau navigasi petunjuk arah, ketika posisi harus selalu terbaru.

Objek Posisi

Objek GeolocationPosition berisi properti coords dengan latitude, longitude, dan accuracy (dalam meter). Kolom opsional tambahan mencakup altitude, altitudeAccuracy, heading, dan speed. Kolom timestamp mencatat kapan posisi tersebut diperoleh.

Kode Kesalahan Geolokasi

Fungsi panggilan balik kesalahan menerima GeolocationPositionError dengan properti code berupa angka. Kode 1 adalah PERMISSION_DENIED (pengguna menolak), kode 2 adalah POSITION_UNAVAILABLE (kegagalan perangkat keras atau jaringan), dan kode 3 adalah TIMEOUT (permintaan memerlukan waktu terlalu lama). Selalu tangani ketiga kasus tersebut.

Menghentikan Pengawasan saat Pembersihan

Pendengar watchPosition berjalan tanpa batas sampai Anda menghentikannya. Di dalam useEffect, kembalikan fungsi pembersihan yang memanggil navigator.geolocation.clearWatch(watchId). Jika Anda melupakan pembersihan ini, pengawas akan terus berjalan setelah komponen dilepas, menguras baterai dan berpotensi memperbarui status komponen yang sudah dilepas.

Membangun Hook useGeolocation

Hook useGeolocation mengelola status dengan empat kemungkinan nilai: idle (belum diminta), loading (permintaan sedang diproses), success (posisi diterima), dan error (gagal). Hook ini juga menyimpan position dan errorMessage dalam status. Komponen menerima antarmuka yang bersih dan konsisten.

Menangani Penolakan Izin dengan Baik

Ketika pengguna menolak geolokasi, tampilkan pesan yang membantu dengan menjelaskan alasan fitur memerlukan akses lokasi dan cara mengaktifkannya kembali di pengaturan peramban. Jangan pernah menampilkan kode kesalahan mentah kepada pengguna. Sediakan alternatif masukan alamat manual agar fitur tetap dapat digunakan tanpa izin lokasi.

Persyaratan HTTPS untuk Geolokasi

Seperti kebanyakan API peramban yang memiliki kemampuan khusus, geolokasi dibatasi pada konteks aman. navigator.geolocation bernilai undefined pada halaman HTTP biasa. Selama pengembangan di localhost, geolokasi dapat digunakan tanpa HTTPS. Dalam produksi, selalu pastikan aplikasi Anda disajikan melalui HTTPS, atau pengguna tidak akan pernah dimintai izin.

Opsi Ketelitian dan Waktu

Argumen ketiga opsional untuk getCurrentPosition dan watchPosition menerima objek opsi. enableHighAccuracy: true meminta ketelitian setara GPS dengan konsekuensi penggunaan daya yang lebih besar. timeout menetapkan jumlah milidetik maksimum untuk menunggu. maximumAge mengizinkan penggunaan posisi tersimpan jika posisi tersebut diperoleh dalam jumlah milidetik yang ditentukan.

Contoh Penggunaan di Dunia Nyata

Geolokasi memungkinkan fitur seperti "temukan toko di dekat saya", pelacakan pengantar barang di peta, cuaca berdasarkan kota saat ini, kiriman yang diberi tag lokasi, dan penghitungan jarak antara pengguna dan tujuan. Selalu jelaskan dengan terang kepada pengguna alasan aplikasi memerlukan lokasi mereka sebelum meminta izin.

Menguji Geolokasi dalam Pengembangan

Chrome DevTools memungkinkan Anda menetapkan lokasi perangkat palsu. Buka DevTools, buka menu tiga titik, pilih Alat lainnya, lalu Sensor. Anda dapat mengetik koordinat lintang dan bujur untuk menyimulasikan lokasi mana pun. Cara ini jauh lebih cepat daripada bepergian secara fisik untuk menguji fitur yang bergantung pada lokasi.

Kode Kesalahan Geolokasi

Apa arti kode GeolocationPositionError bernilai 1?

Ringkasan Pelajaran: API Geolokasi di React

Gunakan getCurrentPosition untuk pembacaan satu kali dan watchPosition untuk pelacakan berkelanjutan. Selalu panggil clearWatch dalam pembersihan useEffect. Buat hook useGeolocation dengan status idle, loading, success, dan error. Tangani penolakan izin dengan baik dan ingat bahwa geolokasi memerlukan HTTPS dalam produksi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Geolocation API dalam Komponen React” gratis?

Ya — teks lengkap “Geolocation API dalam Komponen React” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Geolocation API dalam Komponen React”?

Minta dan lacak lokasi pengguna dengan Geolocation API, tangani izin, lalu bersihkan pemantau. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Geolocation API dalam Komponen React” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Clipboard API: Menyalin dan Menempel di React
  2. Geolocation API dalam Komponen React
  3. Notifications API dan Penanganan Izin
  4. IntersectionObserver untuk Efek yang Dipicu Guliran
← Kembali ke React Academy