跳过内容

Getting Started

GitHub

您可以使用我们的 AI 助手设置来安装插件。将 Capgo 技能添加到您的 AI 工具中,使用以下命令:

终端窗口
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.

如果您prefer手动设置,安装插件并运行以下命令,按照以下平台特定的说明进行操作:

终端窗口
bun add @capgo/capacitor-compass
bunx cap sync

导入

导入
import { CapgoCompass } from '@capgo/capacitor-compass';

API概述

API概述

getCurrentHeading

获取当前指南方位

获取当前指南方位(度数)。 在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);
});

停止监听方向变化。 此操作停止compass传感器并停止事件传播。

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

checkPermissions

标题:检查权限

检查当前访问compass数据的权限状态。 在iOS中,这检查位置权限状态。 在Android中,这始终返回‘已授权’,因为没有权限要求。

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

requestPermissions

标题:请求权限

请求访问compass数据的权限。 在iOS中,这请求位置权限(用于方向数据)。 在Android中,这立即解决,因为没有权限要求。

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

开始监测compass精度。 在Android中,这监测磁力计精度并发出精度变化事件。 开发者可以监听这些事件并实现自己的UI来提示用户进行校准。 在iOS和Web中,这个方法什么也不做,因为compass精度监测不可用。

import { CapgoCompass } 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
}
});

停止监控compass精度。 这将停止精度监控。

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

获取当前compass精度级别。 在Android上,返回当前磁力计传感器精度。 在iOS和Web上,始终返回CompassAccuracy.UNKNOWN,因为精度监控不可用。

import { CapgoCompass } from '@capgo/capacitor-compass';
const { accuracy } = await CapgoCompass.getAccuracy();
if (accuracy < CompassAccuracy.MEDIUM) {
console.log('Compass needs calibration');
}

包含compass方向值的结果。

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

Options for configuring compass listening behavior.

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

Event data for heading change events.

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

Event data for accuracy change events.

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

Permission status for compass plugin.

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

真实来源

真实来源

本页面由插件生成。重新同步公共__CAPGO_KEEP_0__时,重新运行上游的同步 src/definitions.ts. Re-run the sync when the public API changes upstream.

继续从Getting Started

继续从Getting Started

如果您正在使用 开始使用 来规划仪表板和API操作,连接它 使用@capgo/capacitor-compass 为native能力在使用@capgo/capacitor-compass API概述 为API概述的实现细节 介绍 为介绍的实现细节 API密钥 为API密钥的实现细节 设备 了解设备的实现细节。