跳转到正文

快速入门

GitHub

你可以使用我们的 AI 辅助设置来安装插件。使用以下命令将 Capgo skills 添加到你的 AI 工具中:

终端窗口
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

然后使用以下 prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-compass` plugin in my project.

如果你更想手动设置,请运行以下命令安装插件,并按照下方各平台的说明操作:

终端窗口
npm install @capgo/capacitor-compass
npx 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');
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);
});
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();
  • 权限: 调用 checkPermissions() 然后 requestPermissions() 在需要时。
  • 监听器: 在页面卸载时移除句柄。
  • 唯一可信来源:信任 src/definitions.ts 在 GitHub 仓库中。

获取当前指南针方位角(单位:度)。 在 iOS 上,方位角在后台更新,并返回最新值。 在 Android 上,调用该方法时,使用加速度计和磁力计传感器计算方位角。 Web 平台未实现。

import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();
console.log('Compass heading:', value, 'degrees');

通过事件开始监听指南针方位角变化。 这会启动指南针传感器并发出 '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);
});

停止监听罗盘方位角变化。 这会停止罗盘传感器并停止触发事件。

import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();

检查访问罗盘数据的当前权限状态。 在 iOS 上,这会检查位置权限状态。 在 Android 上,由于无需权限,此方法始终返回 'granted'。

import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();
console.log('Compass permission:', status.compass);

请求访问罗盘数据的权限。 在 iOS 上,这会请求位置权限(方位角数据所需)。 在 Android 上,由于无需权限,此方法会立即 resolve。

import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();
if (status.compass === 'granted') {
// Can now use compass
}

开始监控罗盘精度。 在 Android 上,这会监控磁力计精度并触发 accuracyChange 事件。 开发者可以监听这些事件并实现自己的 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
}
});

停止监控指南针精度。 此操作将停止精度监控。

import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.unwatchAccuracy();

获取当前指南针精度级别。 在 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');
}

包含指南针方位角值的返回结果。

export interface CompassHeading {
/** Compass heading in degrees (0-360) */
value: number;
}

配置指南针监听行为的选项。

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;
}

方向变更事件的事件数据。

export interface HeadingChangeEvent {
/** Compass heading in degrees (0-360) */
value: number;
}

精度变更事件的事件数据。

export interface AccuracyChangeEvent {
/** Current accuracy level of the compass */
accuracy: CompassAccuracy;
}

指南针插件的权限状态。

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;
}

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,
}

Compass 访问权限状态。

export type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | 'denied';

本页面由插件的 src/definitions.ts生成。当上游的公共 API 发生变化时,请重新运行 sync。

如果你正在使用 快速入门 要规划 dashboard 和 API 操作,请将其连接到 使用 @capgo/capacitor-compass 在“使用 @capgo/capacitor-compass”中的原生功能 API 概览 关于 API Overview 中的实现细节, 简介 关于 Introduction 中的实现细节, API 密钥 有关 API Keys 的实现细节,以及 设备 有关 Devices 的实现细节。