快速入门
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
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 辅助设置来安装插件。使用以下命令将 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-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
标题为“示例: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
标题为“示例:stopListening”的章节import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();常见坑点
章节标题为“常见陷阱”- 权限: 调用
checkPermissions()然后requestPermissions()在需要时。 - 监听器: 在页面卸载时移除句柄。
- 唯一可信来源:信任
src/definitions.ts在 GitHub 仓库中。
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” 的章节配置指南针监听行为的选项。
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”的章节指南针插件的权限状态。
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';单一事实来源
标题为“单一事实来源”的部分本页面由插件的 src/definitions.ts生成。当上游的公共 API 发生变化时,请重新运行 sync。
从入门指南继续
“从入门指南继续”章节如果你正在使用 快速入门 要规划 dashboard 和 API 操作,请将其连接到 使用 @capgo/capacitor-compass 在“使用 @capgo/capacitor-compass”中的原生功能 API 概览 关于 API Overview 中的实现细节, 简介 关于 Introduction 中的实现细节, API 密钥 有关 API Keys 的实现细节,以及 设备 有关 Devices 的实现细节。