Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-compass`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/compass/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-compass` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
npm install @capgo/capacitor-compassnpx cap syncimport { CapgoCompass } from '@capgo/capacitor-compass';Mulai cepat
Bagian berjudul “Mulai cepat”import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();console.log('Compass heading:', value, 'degrees');Contoh: startListening
Bagian berjudul “Example: startListening”import { CapgoCompass } from '@capgo/capacitor-compass';
// With default throttling (100ms interval, 2° minimum change)await CapgoCompass.startListening();
// With custom throttling for high-frequency updatesawait CapgoCompass.startListening({ minInterval: 50, // 50ms between events minHeadingChange: 1.0 // 1° minimum change});
CapgoCompass.addListener('headingChange', (event) => { console.log('Heading:', event.value);});Contoh: stopListening
Bagian berjudul “Example: stopListening”import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();Kesalahan umum
Bagian berjudul “Kesalahan umum”- Izin: panggil
checkPermissions()kemudianrequestPermissions()saat dibutuhkan. - Listeners: hapus handle saat screen unmount.
- Sumber kebenaran tunggal: percayai
src/definitions.tsdi repo GitHub.
Ringkasan API
Bagian berjudul “Ikhtisar API”getCurrentHeading
Bagian berjudul “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 diimplementasikan di Web.
import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();console.log('Compass heading:', value, 'degrees');startListening
Bagian berjudul “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 updatesawait CapgoCompass.startListening({ minInterval: 50, // 50ms between events minHeadingChange: 1.0 // 1° minimum change});
CapgoCompass.addListener('headingChange', (event) => { console.log('Heading:', event.value);});stopListening
Bagian berjudul “stopListening”Berhenti memantau perubahan heading kompas. Ini menghentikan sensor kompas dan berhenti mengirim event.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();checkPermissions
Bagian berjudul “checkPermissions”Cek status izin saat ini untuk mengakses data kompas. Di iOS, ini mengecek status izin lokasi. Di Android, ini selalu mengembalikan ‘granted’ karena tidak diperlukan izin.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();console.log('Compass permission:', status.compass);requestPermissions
Bagian berjudul “requestPermissions”Minta izin untuk mengakses data kompas. Di iOS, ini meminta izin lokasi (diperlukan untuk data heading). Di Android, ini langsung resolve karena tidak diperlukan izin.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();if (status.compass === 'granted') { // Can now use compass}watchAccuracy
Bagian berjudul “watchAccuracy”Mulai memantau akurasi kompas. Di Android, ini memantau akurasi magnetometer dan mengirim event accuracyChange. Developer bisa mendengarkan event ini dan membuat UI sendiri untuk prompt kalibrasi. Di iOS dan Web, metode ini tidak melakukan apa pun karena pemantauan akurasi kompas tidak tersedia.
import { CapgoCompass, CompassAccuracy } from '@capgo/capacitor-compass';
// Start monitoring accuracyawait CapgoCompass.watchAccuracy();
// Listen for accuracy changes and implement custom UICapgoCompass.addListener('accuracyChange', (event) => { console.log('Accuracy changed to:', event.accuracy); if (event.accuracy < CompassAccuracy.MEDIUM) { // Show your custom calibration UI }});unwatchAccuracy
Bagian berjudul “unwatchAccuracy”Berhenti memantau akurasi kompas. Ini akan menghentikan pemantauan akurasi.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.unwatchAccuracy();getAccuracy
Bagian berjudul “getAccuracy”Dapatkan level akurasi kompas saat ini. Di Android, mengembalikan akurasi sensor magnetometer saat ini. Di iOS dan Web, selalu mengembalikan CompassAccuracy.UNKNOWN karena pemantauan akurasi tidak tersedia.
import { CapgoCompass, CompassAccuracy } from '@capgo/capacitor-compass';
const { accuracy } = await CapgoCompass.getAccuracy();if (accuracy < CompassAccuracy.MEDIUM) { console.log('Compass needs calibration');}Referensi Tipe
Bagian berjudul “Referensi Tipe”CompassHeading
Bagian berjudul “CompassHeading”Hasil yang berisi nilai heading kompas.
export interface CompassHeading { /** Compass heading in degrees (0-360) */ value: number;}ListeningOptions
Bagian berjudul “ListeningOptions”Opsi untuk konfigurasi perilaku listening compass.
export interface ListeningOptions { /** * Minimum interval between heading change events in milliseconds. * Lower values = more frequent updates but higher CPU/battery usage. * * @default 100 * @since 8.1.4 */ minInterval?: number;
/** * Minimum heading change in degrees required to trigger an event. * Lower values = more sensitive but more events. * Handles wraparound (e.g., 359° to 1° = 2° change). * * @default 2.0 * @since 8.1.4 */ minHeadingChange?: number;}HeadingChangeEvent
Bagian berjudul “HeadingChangeEvent”Data event untuk perubahan heading.
export interface HeadingChangeEvent { /** Compass heading in degrees (0-360) */ value: number;}AccuracyChangeEvent
Bagian berjudul “AccuracyChangeEvent”Data event untuk perubahan akurasi.
export interface AccuracyChangeEvent { /** Current accuracy level of the compass */ accuracy: CompassAccuracy;}PermissionStatus
Bagian berjudul “PermissionStatus”Status izin untuk plugin compass.
export interface PermissionStatus { /** * Permission state for accessing compass/location data. * On iOS, this requires location permission to access heading. * On Android, no special permissions are required for compass sensors. * * @since 7.0.0 */ compass: PermissionState;}CompassAccuracy
Bagian berjudul “CompassAccuracy”Konstanta tingkat akurasi Compass.
export enum CompassAccuracy { /** High accuracy - approximates to less than 5 degrees of error */ HIGH = 3, /** Medium accuracy - approximates to less than 10 degrees of error */ MEDIUM = 2, /** Low accuracy - approximates to less than 15 degrees of error */ LOW = 1, /** Unreliable accuracy - approximates to more than 15 degrees of error */ UNRELIABLE = 0, /** Unknown accuracy value */ UNKNOWN = -1,}PermissionState
Bagian berjudul “PermissionState”Status izin untuk akses compass.
export type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | 'denied';Sumber Kebenaran
Bagian berjudul “Sumber Kebenaran”Halaman ini dibuat dari plugin src/definitions.ts. Jalankan ulang sync saat API publik berubah di upstream.
Lanjutkan dari Getting Started
Bagian berjudul “Lanjutkan dari Getting Started”Jika Anda menggunakan Panduan Memulai untuk merencanakan operasi dashboard dan API, hubungkan dengan Menggunakan @capgo/capacitor-compass untuk kapabilitas native saat menggunakan @capgo/capacitor-compass, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, dan Perangkat untuk detail implementasi di Devices.