Menggunakan @capgo/capacitor-compass
Antarmuka Capacitor Compass Plugin untuk membaca arah kompas perangkat.
Instal
bun add @capgo/capacitor-compass
bunx cap sync
bunx cap sync menyalin code native plugin ke dalam proyek native Anda. Jalankan kembali setiap kali melakukan upgrade plugin.
Impor
import { CapgoCompass } from '@capgo/capacitor-compass';
Sekilas tentang API
| Metode | Deskripsi |
|---|---|
getCurrentHeading |
Dapatkan heading kompas saat ini dalam derajat. Di iOS, heading diperbarui di background, dan nilai terbaru akan dikembalikan. Di Android, heading dihitung saat method dipanggil menggunakan sensor accelerometer dan magnetometer. Tidak tersedia di Web. |
startListening |
Mulai mendengarkan perubahan heading kompas melalui event. Ini akan mengaktifkan sensor kompas dan memancarkan event 'headingChange'. |
stopListening |
Berhenti mendengarkan perubahan heading kompas. Ini akan mematikan sensor kompas dan menghentikan pancaran event. |
checkPermissions |
Cek status permission saat ini untuk mengakses data kompas. Di iOS, ini mengecek status permission lokasi. Di Android, ini selalu mengembalikan 'granted' karena tidak memerlukan permission. |
requestPermissions |
Minta permission untuk mengakses data kompas. Di iOS, ini meminta permission lokasi (diperlukan untuk data heading). Di Android, ini langsung selesai karena tidak memerlukan permission. |
watchAccuracy |
Mulai monitoring akurasi kompas. Di Android, ini memonitor akurasi magnetometer dan memancarkan event accuracyChange. Developer bisa mendengarkan event ini dan membuat UI sendiri untuk prompt kalibrasi. Di iOS dan Web, method ini tidak melakukan apa pun karena monitoring akurasi kompas tidak tersedia. |
unwatchAccuracy |
Berhenti monitoring akurasi kompas. Ini akan menghentikan monitoring akurasi. |
getAccuracy |
Dapatkan level akurasi kompas saat ini. Di Android, mengembalikan akurasi sensor magnetometer saat ini. Di iOS dan Web, selalu mengembalikan CompassAccuracy.UNKNOWN karena monitoring akurasi tidak tersedia. |
Contoh
getCurrentHeading()
Dapatkan heading kompas saat ini dalam derajat. Di iOS, heading diperbarui di background, dan nilai terbaru akan dikembalikan. Di Android, heading dihitung saat method dipanggil menggunakan sensor accelerometer dan magnetometer. Tidak tersedia di Web.
import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();
console.log('Compass heading:', value, 'degrees');
startListening()
Mulai mendengarkan perubahan heading kompas melalui event. Ini akan mengaktifkan sensor kompas dan memancarkan event 'headingChange'.
import { CapgoCompass } from '@capgo/capacitor-compass';
// With default throttling (100ms interval, 2° minimum change)
await CapgoCompass.startListening();
// With custom throttling for high-frequency updates
await CapgoCompass.startListening({
minInterval: 50, // 50ms between events
minHeadingChange: 1.0 // 1° minimum change
});
CapgoCompass.addListener('headingChange', (event) => {
console.log('Heading:', event.value);
});
stopListening()
Berhenti mendengarkan perubahan heading kompas. Ini akan menonaktifkan sensor kompas dan menghentikan pengiriman event.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();
checkPermissions()
Cek status permission saat ini untuk mengakses data kompas. Di iOS, ini mengecek status permission lokasi. Di Android, ini selalu mengembalikan 'granted' karena tidak memerlukan permission.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();
console.log('Compass permission:', status.compass);
requestPermissions()
Minta permission untuk mengakses data kompas. Di iOS, ini meminta permission lokasi (diperlukan untuk data heading). Di Android, ini langsung selesai karena tidak memerlukan permission.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();
if (status.compass === 'granted') {
// Can now use compass
}
watchAccuracy()
Mulai monitoring akurasi kompas. Di Android, ini memonitor akurasi magnetometer dan memancarkan event accuracyChange. Developer bisa mendengarkan event ini dan membuat UI sendiri untuk prompt kalibrasi. Di iOS dan Web, method ini tidak melakukan apa pun karena monitoring akurasi kompas tidak tersedia.
import { CapgoCompass, CompassAccuracy } from '@capgo/capacitor-compass';
// Start monitoring accuracy
await CapgoCompass.watchAccuracy();
// Listen for accuracy changes and implement custom UI
CapgoCompass.addListener('accuracyChange', (event) => {
console.log('Accuracy changed to:', event.accuracy);
if (event.accuracy < CompassAccuracy.MEDIUM) {
// Show your custom calibration UI
}
});
Tabel di atas mencantumkan 8 metode inti. Helper listener, versi, dan kontrak lengkap setiap metode didokumentasikan di repositori GitHub.
Mendengarkan event
addListener mengembalikan sebuah handle. Panggil handle.remove() saat layar di-unmount, atau CapgoCompass.removeAllListeners() untuk menghapus semua listener.
Referensi lengkap
Lanjutkan dari Menggunakan @capgo/capacitor-compass
Jika Anda menggunakan Menggunakan @capgo/capacitor-compass untuk merencanakan operasi dashboard dan API, hubungkan dengan @capgo/capacitor-compass untuk detail implementasi di @capgo/capacitor-compass, Panduan Memulai untuk detail implementasi di Getting Started, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, dan Kunci API untuk detail implementasi di API Keys.