Getting Started
复制一个包含安装步骤和本插件的完整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.
bun add @capgo/capacitor-compassbunx cap syncimport { 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');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
停止监听停止监听方向变化事件。 此方法停止方向传感器并停止发送事件。
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
标题:请求权限请求访问compass数据的权限。 在iOS上,这会请求位置权限(用于获取方向数据)。 在Android上,这会立即解决,因为没有权限要求。
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();if (status.compass === 'granted') { // Can now use compass}watchAccuracy
标题:监测精度开始监测compass精度。 在Android上,这会监测磁力计精度并发出精度变化事件。 开发者可以监听这些事件并实现自己的UI来显示校准提示。 在iOS和Web上,这个方法什么也不做,因为compass精度监测不可用。
import { CapgoCompass } 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
标题:停止监测精度停止监测compass精度。 这会停止精度监测。
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.unwatchAccuracy();getAccuracy
标题:获取精度获取当前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');}类型参考
类型参考部分CompassHeading
罗盘方向部分包含罗盘方向值的结果
export interface CompassHeading { /** Compass heading in degrees (0-360) */ value: number;}ListeningOptions
罗盘监听选项部分配置罗盘监听行为的选项
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
罗盘方向变化事件部分罗盘方向变化事件数据
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
PermissionStatuscompass插件的权限状态
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
CompassAccuracycompass准确度级别常量
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
PermissionStatecompass访问权限状态
export type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | 'denied';数据源
数据源本页面由插件生成 src/definitions.ts当公共API上游发生变化时,请重新同步。
继续从开始
继续从开始如果您正在使用 开始 规划仪表板和API操作时,请将其连接到 使用@capgo/capacitor-compass 在使用@capgo/capacitor-compass API概述 为 API 概述的实现细节, 简介 为简介的实现细节, API 密钥 为 API 密钥的实现细节,和 设备 为设备的实现细节。