__CAPGO_KEEP_2__

HealthCapgo repository

GitHub

Capgoの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-health` plugin in my project.

Manual Setupを使用する場合は、以下のコマンドを実行してプラグインをインストールし、以下のプラットフォーム固有の指示に従ってください。

ターミナル画面
bun add @capgo/capacitor-health
bunx cap sync
import { Health } from '@capgo/capacitor-health';

SDKのネイティブヘルス機能が現在のプラットフォームでサポートされているかどうかを返します。

import { Health } from '@capgo/capacitor-health';
await Health.isAvailable();

指定されたデータタイプに対して読み取り/書き込みアクセスを要求します。

import { Health } from '@capgo/capacitor-health';
await Health.requestAuthorization({} as AuthorizationOptions);

指定されたデータタイプの承認状態を確認しますが、ユーザーに質問はしません。

import { Health } from '@capgo/capacitor-health';
await Health.checkAuthorization({} as AuthorizationOptions);

指定されたデータタイプのサンプルを指定された時間枠内で読み取ります。

import { Health } from '@capgo/capacitor-health';
await Health.readSamples({} as QueryOptions);

ネイティブのヘルスストアに単一のサンプルを書き込みます。

import { Health } from '@capgo/capacitor-health';
await Health.saveSample({} as WriteSampleOptions);

Android専用のヘルス接続設定画面を開きます。 iOSでは何も実行されません。

ユーザーをHealth Connectの管理に導くために使用します または、Health Connectが利用できない場合にインストールします。

import { Health } from '@capgo/capacitor-health';
await Health.openHealthConnectSettings();

Health Connect (Android専用)のアプリのプライバシーポリシーを表示します。 iOSでは、このメソッドは何も実行しません。

ユーザーがパーミッションダイアログの「プライバシーポリシー」ボタンをタップしたときに表示される同じプライバシーポリシースクリーンを表示します。

プライバシーポリシーURLは、appのstrings.xmlファイルに「health_connect_privacy_policy_url」という名前の文字列リソースを追加することで設定できます。 または、assetsのwwwディレクトリにHTMLファイルを置くことで設定できます。

import { Health } from '@capgo/capacitor-health';
await Health.showPrivacyPolicy();

native health storeからワークアウトセッションをクエリします。 iOS (HealthKit)とAndroid (Health Connect)でサポートされています。

import { Health } from '@capgo/capacitor-health';
await Health.queryWorkouts({} as QueryWorkoutsOptions);

native health storeからAggregated health dataをクエリします。 データを時間枠 (1時間、1日、1週間、1か月) に集約し、合計、平均、最小値、最大値などの演算を実行します。 大きな日付範囲の場合、個々のサンプルを取得するのではなく、効率的な方法です。

iOS (HealthKit) と Android (Health Connect) でサポートされています。

import { Health } from '@capgo/capacitor-health';
await Health.queryAggregated({} as QueryAggregatedOptions);

AvailabilityResult

「AvailabilityResult」
export interface AvailabilityResult {
available: boolean;
/** Platform specific details (for debugging/diagnostics). */
platform?: 'ios' | 'android' | 'web';
reason?: string;
}

AuthorizationOptions

「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

「AuthorizationStatus」
export interface AuthorizationStatus {
readAuthorized: HealthDataType[];
readDenied: HealthDataType[];
writeAuthorized: HealthDataType[];
writeDenied: HealthDataType[];
}

QueryOptions

「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;
}
export interface ReadSamplesResult {
samples: HealthSample[];
}
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;
}
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;
}
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;
}
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;
}
export interface QueryAggregatedResult {
samples: AggregatedSample[];
}
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';
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パブリックAPIがアップストリームで変更されたときに再度Syncを実行してください。

Getting Startedから続けてください

Keep going from Getting Startedのセクション

あなたが Getting Startedを使用している場合 ダッシュボードとAPIの作業を計画するには、APIに接続する必要があります。 Using @capgo/capacitor-health Using @capgo/capacitor-health APIの概要 for the implementation detail in API Overview 概要 for the implementation detail in Introduction APIのキー for the implementation detail in API Keys, and デバイス for the implementation detail in Devices.