본문으로 바로가기
플러그인으로 돌아가기
@capgo/capacitor-compass
튜토리얼
github.com/Cap-go에서 github

compass

장치의 지구磁기 방향을 degree 단위로 읽어오며 지속적인 업데이트와 권한 처리를 지원합니다.

가이드

compass에 대한 튜토리얼

Using @capgo/capacitor-compass

Capacitor Compass 플러그인: 기기의 Compass 방향을 읽는 인터페이스

설치

bun add @capgo/capacitor-compass
bunx cap sync

이 플러그인이 노출하는 것

  • getCurrentHeading - 기기의 Compass 방향을 현재도구로 반환합니다. iOS에서는 배경에서 Compass 방향을 업데이트하고, 최신 값을 반환합니다. Android에서는 Compass 방향을 계산할 때 가속도계 및 자이로 센서를 사용합니다. 웹에서는 구현되지 않았습니다.
  • startListening - Compass 방향이 변경될 때 이벤트를 통해 Compass 방향을 시작합니다. 이 작업은 Compass 센서를 시작하고, 'headingChange' 이벤트를 방출합니다.
  • stopListening - Compass 방향이 변경될 때 이벤트를 더 이상 시작하지 않습니다. 이 작업은 Compass 센서를 중단하고, 이벤트 방출을 중단합니다.
  • checkPermissions - 현재 Compass 데이터에 대한 접근 권한 상태를 확인합니다. iOS에서는 위치 권한 상태를 확인하고 Android에서는 항상 '허용됨'을 반환합니다.

예시 사용

getCurrentHeading

현재 Compass 방향을 얻습니다. iOS에서는 방향이 업데이트 되며 최신 값을 반환합니다. Android에서는 방향을 계산할 때 가속도계 및 자이로 센서를 사용합니다. 웹에서는 구현되지 않았습니다.

import { CapgoCompass } from '@capgo/capacitor-compass';

const { value } = await CapgoCompass.getCurrentHeading();
console.log('Compass heading:', value, 'degrees');

startListening

Compass 방향이 변경될 때 이벤트를 통해 듣기 시작합니다. Compass 센서를 시작하고 '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

Compass 방향이 변경될 때 이벤트를 듣는 것을 중지합니다. Compass 센서를 중지하고 이벤트 방출을 중지합니다.

import { CapgoCompass } from '@capgo/capacitor-compass';

await CapgoCompass.stopListening();

checkPermissions

현재 Compass 데이터에 대한 접근 권한 상태를 확인합니다. iOS에서는 위치 권한 상태를 확인하고 Android에서는 항상 '허용됨'을 반환합니다.

import { CapgoCompass } from '@capgo/capacitor-compass';

const status = await CapgoCompass.checkPermissions();
console.log('Compass permission:', status.compass);

전체 참조