@capgo/capacitor-compassを使用
Capacitorコンパス プラグインは、デバイスのコンパス向きを読み取るためのインターフェイスです。
インストール
bun add @capgo/capacitor-compass
bunx cap sync
bunx cap sync Capacitor Compassプラグインのcodeを、nativeプロジェクトにコピーします。プラグインのアップグレード後は、再度実行してください。
インポート
import { CapgoCompass } from '@capgo/capacitor-compass';
APIの概要
| メソッド | 説明 |
|---|---|
getCurrentHeading |
現在のコンパスヘッディングを取得します。iOSでは、ヘッディングはバックグラウンドで更新され、最新の値が返されます。Androidでは、ヘッディングは、加速度計と磁気センサを使用して計算されます。Webでは実装されていません。 |
startListening |
コンパスヘッディングの変更をイベント経由で受信開始します。このメソッドで、コンパスセンサを開始し、'headingChange'イベントを発行します。 |
stopListening |
コンパスヘッディングの変更をイベント経由で受信停止します。このメソッドで、コンパスセンサを停止し、イベントの発行を停止します。 |
checkPermissions |
コンパスデータへのアクセス許可の現在の状態を確認します。iOSでは、位置許可の状態を確認します。Androidでは、このメソッドは常に'granted'を返します。 |
requestPermissions |
コンパスデータへのアクセス許可を要求します。iOSでは、ヘッディングデータへの位置許可を要求します。Androidでは、このメソッドはすぐに解決されます。 |
watchAccuracy |
コンパス精度を監視開始します。Androidでは、磁気センサの精度を監視し、精度変更イベントを発行します。開発者は、これらのイベントをリスンし、カリブレーションプロンプトのUIを実装できます。iOSとWebでは、このメソッドは何も実行しません。 |
unwatchAccuracy |
コンパス精度を監視停止します。このメソッドで、精度監視を停止します。 |
getAccuracy |
現在のコンパス精度を取得します。Androidでは、現在の磁気センサ精度を返します。iOSとWebでは、精度のモニタリングが利用できないため、常にCompassAccuracy.UNKNOWNを返します。 |
例
getCurrentHeading()
コンパス向きを取得します。iOSでは、バックグラウンドで向きが更新され、最新の値が返されます。Androidでは、メソッドが呼び出されたときに加速度計と磁気センサを使用して向きが計算されます。Webでは実装されていません。
import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();
console.log('Compass heading:', value, 'degrees');
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 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()
コンパス向きの変更をリスンすることを停止します。このメソッドはコンパスセンサを停止し、イベントの発行を停止します。
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();
checkPermissions()
現在のコンパスデータへのアクセス許可の状態を確認します。iOSでは、位置許可の状態を確認します。Androidでは、常に'granted'を返します。なぜなら、許可が必要ないからです。
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();
console.log('Compass permission:', status.compass);
requestPermissions()
コンパスデータへのアクセス許可を要求します。iOSでは、向きデータのために位置許可を要求します。Androidでは、すぐに許可が必要ないため、すぐに解決されます。
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();
if (status.compass === 'granted') {
// Can now use compass
}
watchAccuracy()
コンパス精度を監視します。Androidでは、磁気センサの精度を監視し、精度の変更イベントを発行します。開発者は、これらのイベントをリスンし、カリブレーションプロンプトのUIを実装できます。iOSとWebでは、このメソッドは何も実行しません。なぜなら、コンパス精度のモニタリングが利用できないからです。
import { CapgoCompass, CompassAccuracy } from '@capgo/capacitor-compass';
// Start monitoring accuracy
await CapgoCompass.watchAccuracy();
// Listen for accuracy changes and implement custom UI
CapgoCompass.addListener('accuracyChange', (event) => {
console.log('Accuracy changed to:', event.accuracy);
if (event.accuracy < CompassAccuracy.MEDIUM) {
// Show your custom calibration UI
}
});
Capacitor Compassの8つの基本メソッドがリストされています。リスナーとバージョンヘルパー、各メソッドの完全な契約は、上の表に記載されています。 GitHub リポジトリ.
イベントをリスンする
addListener ハンドルを返します。画面がアンマウントされたとき、または handle.remove() すべてのリスナーをクリアする CapgoCompass.removeAllListeners() フルリファレンス
ドキュメント
@capgo/capacitor-compassを継続して使用してください。
__CAPGO_KEEP_0__ Using @capgo/capacitor-compass 計画ダッシュボードとAPIの運用を、 @capgo/capacitor-compass @capgo/capacitorコンパスの実装詳細のために はじめに Getting Startedの実装の詳細についてはGetting Startedを参照 API Overview Capacitor Compassの実装詳細についてはAPIの概要です。 Introduction Introductionの実装の詳細についてはIntroductionを参照 API キー API の実装詳細についてはキーコンフィギュレーションに依存します。