시작하기
__CAPGO_KEEP_0__
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-health`
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/health/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.
설치
설치bun add @capgo/capacitor-healthbunx cap syncimport { Health } from '@capgo/capacitor-health';API 개요
‘API 개요’ 제목의 섹션isAvailable
‘isAvailable’ 제목의 섹션현재 플랫폼이 네이티브 헬스 SDK를 지원하는지 여부를 반환합니다.
import { Health } from '@capgo/capacitor-health';
await Health.isAvailable();requestAuthorization
‘requestAuthorization’ 제목의 섹션제공된 데이터 타입에 대한 읽기/쓰기 접근 권한을 요청합니다.
import { Health } from '@capgo/capacitor-health';
await Health.requestAuthorization({} as AuthorizationOptions);checkAuthorization
인증 확인을 위한 "checkAuthorization" 섹션사용자에게 알리지 않고 제공된 데이터 유형의 인증 상태를 확인합니다.
import { Health } from '@capgo/capacitor-health';
await Health.checkAuthorization({} as AuthorizationOptions);readSamples
"readSamples" 섹션 제목지정된 시간 범위 내에서 지정된 데이터 유형의 샘플을 읽습니다.
import { Health } from '@capgo/capacitor-health';
await Health.readSamples({} as QueryOptions);saveSample
"saveSample" 섹션 제목자연스러운 건강 저장소에 단일 샘플을 씁니다.
import { Health } from '@capgo/capacitor-health';
await Health.saveSample({} as WriteSampleOptions);openHealthConnectSettings
"openHealthConnectSettings" 섹션 제목안드로이드에서만 건강 연결 설정 화면을 엽니다. iOS에서는 아무런 동작도 하지 않습니다.
이 섹션을 사용하여 사용자가 Health Connect 권한을 관리하거나 Health Connect를 설치하도록 안내하세요.
import { Health } from '@capgo/capacitor-health';
await Health.openHealthConnectSettings();showPrivacyPolicy
‘showPrivacyPolicy’ 섹션Health Connect (안드로이드만)에서 앱의 개인정보 정책을 표시합니다. iOS에서는 이 메서드가 아무런 동작도 하지 않습니다.
Health Connect에서 사용자가 ‘개인정보 정책’을 탭할 때 표시되는 개인정보 정책 화면을 표시합니다.
Health Connect 개인정보 정책 URL은 앱의 strings.xml에 ‘health_connect_privacy_policy_url’라는 이름의 문자열 리소스를 추가하거나 www/privacypolicy.html 파일을 앱의 자산에 위치시키면 설정할 수 있습니다.
import { Health } from '@capgo/capacitor-health';
await Health.showPrivacyPolicy();queryWorkouts
‘queryWorkouts’ 섹션native health store에서 운동 세션을 쿼리합니다. iOS (HealthKit)와 Android (Health Connect)에서 지원됩니다.
import { Health } from '@capgo/capacitor-health';
await Health.queryWorkouts({} as QueryWorkoutsOptions);queryAggregated
‘queryAggregated’ 섹션native health store에서 쿼리한 건강 데이터를 집계합니다. 시간 단위 (시간, 일, 주, 월)로 데이터를 집계하고 합, 평균, 최소, 최대와 같은 연산을 수행합니다. 대량의 날짜 범위에 대한 개별 샘플을 가져오는 것보다 더 효율적입니다.
iOS (HealthKit) 및 Android (Health Connect)에서 지원됩니다.
import { Health } from '@capgo/capacitor-health';
await Health.queryAggregated({} as QueryAggregatedOptions);타입 참조
타입 참조AvailabilityResult
사용 가능성 결과export interface AvailabilityResult { available: boolean; /** Platform specific details (for debugging/diagnostics). */ platform?: 'ios' | 'android' | 'web'; reason?: string;}AuthorizationOptions
인증 옵션export interface AuthorizationOptions { /** Data types that should be readable after authorization. */ read?: HealthDataType[]; /** Data types that should be writable after authorization. */ write?: HealthDataType[];}AuthorizationStatus
인증 상태export interface AuthorizationStatus { readAuthorized: HealthDataType[]; readDenied: HealthDataType[]; writeAuthorized: HealthDataType[]; writeDenied: HealthDataType[];}QueryOptions
쿼리 옵션export interface QueryOptions { /** The type of data to retrieve from the health store. */ dataType: HealthDataType; /** Inclusive ISO 8601 start date (defaults to now - 1 day). */ startDate?: string; /** Exclusive ISO 8601 end date (defaults to now). */ endDate?: string; /** Maximum number of samples to return (defaults to 100). */ limit?: number; /** Return results sorted ascending by start date (defaults to false). */ ascending?: boolean;}ReadSamplesResult
ReadSamplesResult 섹션export interface ReadSamplesResult { samples: HealthSample[];}WriteSampleOptions
WriteSampleOptions 섹션export interface WriteSampleOptions { dataType: HealthDataType; value: number; /** * Optional unit override. If omitted, the default unit for the data type is used * (count for `steps`, meter for `distance`, kilocalorie for `calories`, bpm for `heartRate`, kilogram for `weight`). */ unit?: HealthUnit; /** ISO 8601 start date for the sample. Defaults to now. */ startDate?: string; /** ISO 8601 end date for the sample. Defaults to startDate. */ endDate?: string; /** Metadata key-value pairs forwarded to the native APIs where supported. */ metadata?: Record<string, string>; /** For blood pressure data, the systolic value in mmHg. Required when dataType is 'bloodPressure'. */ systolic?: number; /** For blood pressure data, the diastolic value in mmHg. Required when dataType is 'bloodPressure'. */ diastolic?: number;}QueryWorkoutsOptions
QueryWorkoutsOptions 섹션export interface QueryWorkoutsOptions { /** Optional workout type filter. If omitted, all workout types are returned. */ workoutType?: WorkoutType; /** Inclusive ISO 8601 start date (defaults to now - 1 day). */ startDate?: string; /** Exclusive ISO 8601 end date (defaults to now). */ endDate?: string; /** Maximum number of workouts to return (defaults to 100). */ limit?: number; /** Return results sorted ascending by start date (defaults to false). */ ascending?: boolean; /** * Anchor for pagination. Use the anchor returned from a previous query to continue from that point. * On iOS, this is the ISO 8601 cursor returned by the previous query. On Android, this uses * Health Connect's pageToken. * Omit this parameter to start from the beginning. */ anchor?: string;}QueryWorkoutsResult
QueryWorkoutsResult 섹션export interface QueryWorkoutsResult { workouts: Workout[]; /** * Anchor for the next page of results. Pass this value as the anchor parameter in the next query * to continue pagination. If undefined or null, there are no more results. */ anchor?: string;}QueryAggregatedOptions
QueryAggregatedOptions 섹션export interface QueryAggregatedOptions { /** The type of data to aggregate from the health store. */ dataType: HealthDataType; /** Inclusive ISO 8601 start date (defaults to now - 1 day). */ startDate?: string; /** Exclusive ISO 8601 end date (defaults to now). */ endDate?: string; /** Time bucket for aggregation (defaults to 'day'). */ bucket?: BucketType; /** Aggregation operation to perform (defaults to 'sum'). */ aggregation?: AggregationType;}QueryAggregatedResult
QueryAggregatedResult 섹션export interface QueryAggregatedResult { samples: AggregatedSample[];}HealthDataType
HealthDataType 섹션export type HealthDataType = | 'steps' | 'distance' | 'calories' | 'heartRate' | 'weight' | 'sleep' | 'respiratoryRate' | 'oxygenSaturation' | 'restingHeartRate' | 'heartRateVariability' | 'bloodPressure' | 'bloodGlucose' | 'bodyTemperature' | 'height' | 'flightsClimbed' | 'exerciseTime' | 'distanceCycling' | 'bodyFat' | 'basalBodyTemperature' | 'basalCalories' | 'totalCalories' | 'mindfulness' | 'workouts';HealthSample
HealthSample 섹션export interface HealthSample { dataType: HealthDataType; value: number; unit: HealthUnit; startDate: string; endDate: string; sourceName?: string; sourceId?: string; /** Platform-specific unique identifier (HealthKit UUID on iOS, Health Connect metadata ID on Android). */ platformId?: string; /** For sleep data, indicates the sleep state (e.g., 'asleep', 'awake', 'rem', 'deep', 'light'). */ sleepState?: SleepState; /** For blood pressure data, the systolic value in mmHg. */ systolic?: number; /** For blood pressure data, the diastolic value in mmHg. */ diastolic?: number;}진실의 근원
진실의 근원 섹션이 페이지는 플러그인에서 생성되었습니다. src/definitions.ts업스트림에서 pubic API이 변경되면 다시 싱크를 실행하세요.