Menggunakan @capgo/capacitor-compass
Plugin Compass Capacitor untuk membaca arah kompas perangkat.
Pasang
bun add @capgo/capacitor-compass
bunx cap sync
bunx cap sync mengcopy kode native code ke proyek-proyek native Anda. Jalankan lagi setelah setiap upgrade plugin.
Import
import { CapgoCompass } from '@capgo/capacitor-compass';
lihat kode API secara langsung
| Metode | Deskripsi |
|---|---|
getCurrentHeading |
Mendapatkan arah kompas sekarang dalam derajat. Pada iOS, arah kompas diperbarui di latar belakang, dan nilai terbaru dikembalikan. Pada Android, arah kompas dihitung ketika metode ini dipanggil menggunakan sensor accelerometer dan magnetometer. Belum diimplementasikan pada Web. |
startListening |
Mulai mendengarkan perubahan arah kompas melalui event. Ini memulai sensor kompas dan mengirimkan event 'headingChange'. |
stopListening |
Menghentikan mendengarkan perubahan arah kompas. Ini menghentikan sensor kompas dan menghentikan pengiriman event. |
checkPermissions |
Periksa status izin saat ini untuk mengakses data kompas. Pada iOS, ini memeriksa status izin lokasi. Pada Android, ini selalu mengembalikan 'granted' karena tidak ada izin yang diperlukan. |
requestPermissions |
Minta izin untuk mengakses data kompas. Pada iOS, ini meminta izin lokasi (diperlukan untuk data arah). Pada Android, ini diselesaikan segera karena tidak ada izin yang diperlukan. |
watchAccuracy |
Mulai memantau akurasi kompas. Pada Android, ini memantau akurasi magnetometer dan mengirimkan event 'accuracyChange'. Pengembang dapat mendengarkan event ini dan mengimplementasikan UI mereka sendiri untuk permintaan kalibrasi. Pada iOS dan Web, metode ini tidak melakukan apa-apa karena pemantauan akurasi kompas tidak tersedia. |
unwatchAccuracy |
Menghentikan memantau akurasi kompas. Ini menghentikan pemantauan akurasi. |
getAccuracy |
Peroleh tingkat akurasi kompas saat ini. Pada Android, mengembalikan akurasi sensor magnetometer saat ini. Pada iOS dan Web, selalu mengembalikan CompassAccuracy.UNKNOWN karena pemantauan akurasi tidak tersedia. |
Contoh
getCurrentHeading()
Peroleh arah kompas saat ini dalam derajat. Pada iOS, arah kompas diperbarui di latar belakang, dan nilai terbaru dikembalikan. Pada Android, arah kompas dihitung ketika metode dipanggil menggunakan sensor accelerometer dan magnetometer.
import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();
console.log('Compass heading:', value, 'degrees');
startListening()
Mulai mendengarkan perubahan arah kompas melalui event. Ini memulai sensor kompas dan mengirimkan 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()
Hentikan mendengarkan perubahan arah kompas. Ini menghentikan sensor kompas dan menghentikan pengiriman event.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();
checkPermissions()
Periksa status izin saat ini untuk mengakses data kompas. Pada iOS, ini memeriksa status izin lokasi. Pada Android, ini selalu mengembalikan 'granted' karena tidak ada izin yang diperlukan.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();
console.log('Compass permission:', status.compass);
requestPermissions()
Minta izin untuk mengakses data kompas. Pada iOS, ini meminta izin lokasi (diperlukan untuk data arah). Pada Android, ini menyelesaikan segera karena tidak ada izin yang diperlukan.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();
if (status.compass === 'granted') {
// Can now use compass
}
watchAccuracy()
Mulai memantau akurasi kompas. Pada Android, ini memantau akurasi magnetometer dan mengirimkan event accuracyChange. Pengembang dapat mendengarkan event ini dan menerapkan UI mereka sendiri untuk permintaan kalibrasi. Pada iOS dan Web, metode ini tidak melakukan apa-apa karena pemantauan 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
}
});
Daftar di atas menampilkan 8 metode inti. Pembantu pemanggil dan versi, serta kontrak lengkap dari setiap metode, dapat dilihat di repository GitHub.
Dengarkan event
addListener mengembalikan sebuah handle. Panggil handle.remove() ketika layar dihapus, atau CapgoCompass.removeAllListeners() untuk menghapus setiap pemanggil.
Referensi lengkap
Teruskan dari Menggunakan @capgo/capacitor-compass
Jika Anda menggunakan Gunakan @capgo/capacitor-compass untuk merencanakan dashboard dan API operasi, hubungkannya dengan @capgo/capacitor-compass untuk detail implementasi di @capgo/capacitor-compass, Panduan Awal untuk detail implementasi di Panduan Awal, Ringkasan API untuk detail implementasi di Ringkasan API, Pendahuluan untuk detail implementasi di Pendahuluan, dan Kunci API untuk detail implementasi di Kunci API.