スタートガイド
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
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アシストによるセットアップでプラグインをインストールできます。以下のコマンドを使用して、お使いの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 { 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」セクション現在のコンパスの方位を度数で取得します。 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 では権限が不要なため、即座に resolve されます。
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();if (status.compass === 'granted') { // Can now use compass}watchAccuracy
「watchAccuracy」セクションコンパスの精度モニタリングを開始します。 Android では磁力計の精度を監視し、accuracyChange イベントを発行します。 開発者はこれらのイベントをリッスンして、キャリブレーションのプロンプト用に独自の 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では、現在の磁力計センサーの精度を返します。 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」セクションコンパスのヘディング値を含む結果。
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」セクション方位変化イベントのデータ。
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.tsから生成されています。upstream で公開 API が変更されたら、再度 sync を実行してください。
Getting Startedの続きを進める
「Getting Started からの続き」セクション使用している場合 スタートガイド ダッシュボードと API の運用を計画するには、これを次と連携させます @capgo/capacitor-compass を使用 @capgo/capacitor-compass を使う場合のネイティブ機能については、 API の概要 「API の概要」の実装の詳細については、 はじめに 「はじめに」における実装の詳細については、 API キー および「API Keys」の実装の詳細については、 デバイス 実装の詳細については Devices を参照してください。