시작하기
이 플러그인의 설치 단계와 전체 마크다운 가이드가 포함된 설정 프롬프트를 복사하세요.
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.
AI-Assisted Setup으로 플러그인을 설치할 수 있습니다. 다음 명령어로 AI 도구에 Capgo 스킬을 추가하세요:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins그런 다음 아래 프롬프트를 사용하세요:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-compass` plugin in my project.수동 설정을 선호한다면, 다음 명령어를 실행하여 플러그인을 설치하고 아래의 플랫폼별 지침을 따르세요:
npm install @capgo/capacitor-compassnpx cap sync가져오기
“Import” 섹션import { CapgoCompass } from '@capgo/capacitor-compass';빠른 시작
“빠른 시작” 섹션import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();console.log('Compass heading:', value, 'degrees');예시: startListening
“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);});예시: stopListening
“Example: stopListening” 섹션import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();자주 하는 실수
“흔한 실수” 섹션- 권한: 호출
checkPermissions()그다음requestPermissions()필요할 때. - 리스너: 화면이 언마운트될 때 핸들을 제거합니다.
- 신뢰할 수 있는 소스: 신뢰
src/definitions.tsGitHub 레포지토리에서.
API 개요
“API 개요” 섹션getCurrentHeading
“getCurrentHeading” 섹션현재 나침반의 방위각을 도(degrees) 단위로 가져옵니다. iOS에서는 백그라운드에서 방위각이 업데이트되며 최신 값이 반환됩니다. Android에서는 메서드 호출 시 가속도계와 자기계 센서를 사용하여 방위각을 계산합니다. Web에서는 지원되지 않습니다.
import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();console.log('Compass heading:', value, 'degrees');startListening
“startListening” 섹션이벤트를 통해 나침盤 방위각 변경 사항을 감지하기 시작합니다. 이 작업을 수행하면 나침반 센서가 활성화되고 ‘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
“stopListening” 섹션나침반 방위각 변경 감지를 중단합니다. 나침반 센서 작동을 멈추고 이벤트 발생을 중단합니다.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();checkPermissions
“checkPermissions” 섹션나침반 데이터 접근에 대한 현재 권한 상태를 확인합니다. iOS에서는 위치 권한 상태를 확인합니다. Android에서는 별도의 권한이 필요하지 않으므로 항상 ‘granted’를 반환합니다.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();console.log('Compass permission:', status.compass);requestPermissions
“requestPermissions” 섹션나침반 데이터 접근 권한을 요청합니다. iOS에서는 위치 권한을 요청합니다(방위각 데이터에 필요). Android에서는 별도의 권한이 필요하지 않으므로 즉시 완료됩니다.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();if (status.compass === 'granted') { // Can now use compass}watchAccuracy
“watchAccuracy” 섹션나침반 정확도 모니터링을 시작합니다. Android에서는 지자기 센서(magnetometer) 정확도를 모니터링하고 accuracyChange 이벤트를 발생시킵니다. 개발자는 이 이벤트를 수신하여 보정 prompt를 위한 자체 UI를 구현할 수 있습니다. iOS 및 Web에서는 나침반 정확도 모니터링을 지원하지 않으므로 아무 동작도 수행하지 않습니다.
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
“unwatchAccuracy” 섹션나침반 정확도 모니터링을 중단합니다. 정확도 모니터링이 종료됩니다.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.unwatchAccuracy();getAccuracy
“getAccuracy” 섹션현재 나침반 정확도 수준을 가져옵니다. Android에서는 현재 magnetometer 센서 정확도를 반환합니다. iOS와 Web에서는 정확도 모니터링을 지원하지 않으므로 항상 CompassAccuracy.UNKNOWN을 반환합니다.
import { CapgoCompass, CompassAccuracy } from '@capgo/capacitor-compass';
const { accuracy } = await CapgoCompass.getAccuracy();if (accuracy < CompassAccuracy.MEDIUM) { console.log('Compass needs calibration');}타입 레퍼런스
“타입 참조” 섹션CompassHeading
“CompassHeading” 섹션나침반 방위(heading) 값을 포함하는 결과입니다.
export interface CompassHeading { /** Compass heading in degrees (0-360) */ value: number;}ListeningOptions
“ListeningOptions” 섹션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
“HeadingChangeEvent” 섹션heading 변경 이벤트 데이터입니다.
export interface HeadingChangeEvent { /** Compass heading in degrees (0-360) */ value: number;}AccuracyChangeEvent
“AccuracyChangeEvent” 섹션정확도 변경 이벤트 데이터입니다.
export interface AccuracyChangeEvent { /** Current accuracy level of the compass */ accuracy: CompassAccuracy;}PermissionStatus
“PermissionStatus” 섹션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
“CompassAccuracy” 섹션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
“PermissionState” 섹션Compass 접근 권한 상태.
export type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | 'denied';Source of Truth
“Source Of Truth” 섹션이 페이지는 플러그인의 src/definitions.tsupstream에서 public API가 변경되면 sync를 다시 실행하세요.
시작하기 다음 단계
“Getting Started에서 계속하기” 섹션사용 중이라면 시작하기 대시보드 및 API 운영을 계획하려면, 이를 다음과 연결하세요 @capgo/capacitor-compass 사용하기 @capgo/capacitor-compass 사용 시 네이티브 기능을 위해, API 개요 구현 세부 사항은 API 개요에서 소개 구현 세부 사항은 소개에서 API 키 API Keys의 구현 세부 사항은, 기기 Devices의 구현 세부 사항은.