@capgo/capacitor-compass

中文文档
8.1.24发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4.6万

Capacitor 本地指南针标题插件

中文使用文档
文档目录26 节
  1. *免费开始*
  2. 主要特点
  3. 为什么是Capacitor Compass?
  4. 兼容性
  5. 安装
  6. 所需资源
  7. iOS系统
  8. 机器人
  9. 使用量
  10. API 密码
  11. 获取当前标题( C)
  12. 获取 PluginVersion ()
  13. 开始聆听(...)
  14. 停止听( )
  15. 添加倾听器( “ 标题变化 ” ,...)
  16. 添加倾听器( “ 准确切换 ” ,...)
  17. 删除所有收听器( )
  18. 检查( )
  19. 请求( )
  20. 精确度( )
  21. 准确性( )
  22. 获取准确性( )
  23. 接口
  24. 类型异名
  25. 数字
  26. 贷项

@ capgo/ 电容器- compass

让设备指南针在iOS和Android上以度向行走,作为一次性读取或活流. 将用户指向某地,旋转地图或建立qibla查找器.

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-compass 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-compass到我的 Capacitor app 并把它接上 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-compass for Capacitor apps

主要特点

  • 当前标题数字 : getCurrentHeading() 返回以度为单位的标题.
  • 实时更新数字 : startListening() 发射 headingChange 事件, stopListening() 拦住他们.
  • 准确性数字 : watchAccuracy(), (中文(简体) ), getAccuracy() 编辑 accuracyChange 事件可以要求用户校正.
  • 权限数字 : checkPermissions() 财务报告和审定财务报表 requestPermissions()。 。 。 .
  • 平台: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-22. iOS使用Core Location标题,Android使用设备传感器. 在网上不可用.

为什么是Capacitor Compass?

官方电容 API 动议 依靠网络API来获取指南针/标题数据,这提供了一个次最佳开发者的经验:

  • 行为不一致 跨平台
  • 其他权限处理 通过网络 API
  • 准确性有限 与本地执行相比
  • 业绩不佳 在一些设备上
  • 无准确性监测 确保可靠的指南针读取

此插件提供 真实的本地指南针功能 使用:

  • iOS系统数字 : CLLocationManager 通过 CoreLocation 获取准确的标题数据
  • 机器人: 硬件传感器(加速计+磁力计),用于精确的轴承计算
  • 准确性监测: 监测Android上的指南针准确性并促使用户在需要时校正
  • 基于事件的 API: 现代 addListener 实时标题更新模式

对于导航应用,增强现实,基于位置的游戏,以及任何需要精确的指南针航向的应用都是必不可少的.

兼容性

插件版本电容兼容性维护
联合国联合国✅
页:1页:1应要求
页:1页:1❌
页:1页:1❌

说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.

安装

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

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

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

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capgo/capacitor-compass
npx cap sync

所需资源

iOS系统

在您的 Info.plist数字 :

<key>NSLocationWhenInUseUsageDescription</key>
<string>We need access to your location to determine compass heading</string>

机器人

不需要额外设置。 该插件使用设备的加速计和磁强计传感器.

使用量

import { CapgoCompass, CompassAccuracy } from '@capgo/capacitor-compass';

// Get current heading once
const { value } = await CapgoCompass.getCurrentHeading();
console.log('Current heading:', value, 'degrees');

// Listen for continuous heading updates
const handle = await CapgoCompass.addListener('headingChange', (event) => {
  console.log('Heading:', event.value, 'degrees');
});

// Start the compass sensor
await CapgoCompass.startListening();

// Monitor compass accuracy (Android only)
const accuracyHandle = await CapgoCompass.addListener('accuracyChange', (event) => {
  console.log('Compass accuracy:', event.accuracy);
  if (event.accuracy < CompassAccuracy.MEDIUM) {
    console.log('Compass needs calibration');
    // Show your own custom UI to prompt user to calibrate
  }
});

// Start accuracy monitoring
await CapgoCompass.watchAccuracy();

// Get current accuracy
const { accuracy } = await CapgoCompass.getAccuracy();
console.log('Current accuracy:', accuracy);

// Later: stop listening
await CapgoCompass.stopListening();
await CapgoCompass.unwatchAccuracy();
await handle.remove();
await accuracyHandle.remove();

API 密码

用于读取设备指南针方向的 Capacitor Compass 插件接口 .

获取当前标题( C)

getCurrentHeading() => Promise<CompassHeading>

让现在的指南针以度向上. 在iOS上,标题在背景中更新,并返回最新值. 在Android上,当使用加速计和磁强计传感器调用该方法时会计算出这个标题. 未在网络上执行 .

回返情况: Promise<CompassHeading>

自: 7.0.0 (单位:千美元)


获取 PluginVersion ()

getPluginVersion() => Promise<{ version: string; }>

获取本地 Capacitor 插件版本 .

回返情况: Promise<{ version: string; }>

自: 7.0.0 (单位:千美元)


开始聆听(...)

startListening(options?: ListeningOptions | undefined) => Promise<void>

开始通过事件聆听指南针标题变化 . 这开始罗盘传感器 并发出"头变"事件.

参数类型说明
optionsListeningOptions- 节奏行为的可选配置

自: 7.0.0 (单位:千美元)


停止听( )

stopListening() => Promise<void>

停止监听指南针标题更改 . 这停止了罗盘传感器 并停止了排放事件.

自: 7.0.0 (单位:千美元)


添加倾听器( “ 标题变化 ” ,...)

addListener(eventName: 'headingChange', listenerFunc: (event: HeadingChangeEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为引导更改事件添加一个收听器 .

参数类型说明
eventName'headingChange'- 要听的活('heading Change')
listenerFunc(event: HeadingChangeEvent) => void- 事件发射时调用功能

回返情况: Promise<{ remove: () => Promise<void>; }>

自: 7.0.0 (单位:千美元)


添加倾听器( “ 准确切换 ” ,...)

addListener(eventName: 'accuracyChange', listenerFunc: (event: AccuracyChangeEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为指南针精确度变化事件添加一个收听器. 只支持在Android上. 在iOS和Web上,这永远不会出现事件.

参数类型说明
eventName'accuracyChange'- 要听的活动('准确 Change')
listenerFunc(event: AccuracyChangeEvent) => void- 事件发射时调用功能

回返情况: Promise<{ remove: () => Promise<void>; }>

自: 8.2.0 (中文(简体) )


删除所有收听器( )

removeAllListeners() => Promise<void>

删除此插件的所有听众 .

自: 7.0.0 (单位:千美元)


检查( )

checkPermissions() => Promise<PermissionStatus>

检查当前访问罗盘数据的许可状态 . 在iOS上,此检查位置许可状态. 在Android上,它总是返回"被授予",因为不需要权限.

回返情况: Promise<PermissionStatus>

自: 7.0.0 (单位:千美元)


请求( )

requestPermissions() => Promise<PermissionStatus>

请求访问罗盘数据的许可 . 在iOS上,这请求位置权限(对标题数据的要求). 在Android上,这立即解决,因为不需要权限.

回返情况: Promise<PermissionStatus>

自: 7.0.0 (单位:千美元)


精确度( )

watchAccuracy() => Promise<void>

开始监控罗盘精确度. 在Android上,这个监测磁强计的精度和发射精度 变化事件. 开发者可以收听这些事件,执行自己的UI校正提示. 在iOS和Web上,这种方法没有任何作用,因为没有罗盘准确性监测.

自: 8.2.0 (中文(简体) )


准确性( )

unwatchAccuracy() => Promise<void>

停止监控罗盘精确度. 这停止了准确性监测.

自: 8.2.0 (中文(简体) )


获取准确性( )

getAccuracy() => Promise<{ accuracy: CompassAccuracy; }>

获取当前指南针精确度 . 在Android上,返回当前磁强计传感器的精度. 在 iOS 和 Web 上, 总是返回 指南准确性 由于没有准确性监测.

回返情况: Promise<{ accuracy: CompassAccuracy; }>

自: 8.2.0 (中文(简体) )


接口

指南标题

包含指南针标题值的结果 .

Prop类型说明
valuenumber坐标为度(0-360)

监听选项

配置罗盘监听行为的选项 .

Prop类型说明默认自兹
minIntervalnumber以毫秒计的标题变化事件之间的最小间隔 。 下值 = 更新频率较高,但CPU/电池使用率较高.1008.1.4 (中文(简体) )
minHeadingChangenumber触发事件所需的最小方向变化 。 下值 = 更敏感但事件更多. 手接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相相.2.08.1.4 (中文(简体) )

标题 更改事件

变化事件标题的事件数据 .

Prop类型说明
valuenumber坐标为度(0-360)

精确变化事件

准确性变化事件的事件数据.

Prop类型说明
accuracyCompassAccuracy指南针的当前精确度

权限状态

指南针插件的授权状态 .

Prop类型说明自兹
compassPermissionState访问罗盘/位置数据的许可状态 。 在iOS上,这需要位置许可才能访问标题. 在Android上,指南针传感器不需要特殊许可.7.0.0 (单位:千美元)

类型异名

权限状态

'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'

数字

指南精确度

成员数值说明
HIGH3高度精度 - 大约为5度以下的错误
MEDIUM2中度精确度 - 大约为10度以下的错误
LOW1低精度 - 大约为15度以下的错误
UNRELIABLE0不可靠的精确度 - 大约为15度以上的误差
UNKNOWN-1未知的精确值

贷项

此插件的灵感来自 电容-内在-辅助材料 嘿,这是蝙蝠侠.

版本与发布记录

@capgo/capacitor-compass 共发布 28 个版本,首次发布于 2025/11/29;过去 12 个月发布了 28 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.1.24latest2026/10/1525 天前
8.1.232026/10/1327 天前
8.1.222026/10/091 个月前
8.1.212026/10/081 个月前
8.1.202026/09/161 个月前
8.1.192026/08/202 个月前

关于 @capgo/capacitor-compass 的常见问题

@capgo/capacitor-compass 是什么?

Capacitor 本地指南针标题插件

如何安装 @capgo/capacitor-compass?

在项目目录运行 npm install @capgo/capacitor-compass,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-compass 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-compass 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-compass 可以商用吗?

@capgo/capacitor-compass 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-compass 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-compass 在 2026/10/09 – 2026/11/07 这 30 天内被下载 45,704 次,日均约 1,523 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-compass 还在维护吗?

最新版本 8.1.24 发布于 2026/10/15(25 天前);至今共发布 28 个版本,其中过去 12 个月发布了 28 个;首次发布于 2025/11/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。