@ capgo/ 电容器- compass
让设备指南针在iOS和Android上以度向行走,作为一次性读取或活流. 将用户指向某地,旋转地图或建立qibla查找器.
🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用
@capgo/capacitor-compass在您的电容应用程序中:npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-compass到我的 Capacitor app 并把它接上 代理设置指南 • 妇女 主机磁共振
主要特点
- 当前标题数字 :
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 密码
getCurrentHeading()getPluginVersion()startListening(...)stopListening()addListener('headingChange', ...)addListener('accuracyChange', ...)removeAllListeners()checkPermissions()requestPermissions()watchAccuracy()unwatchAccuracy()getAccuracy()- 接口
- 类型异名
- 数字
用于读取设备指南针方向的 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>
开始通过事件聆听指南针标题变化 . 这开始罗盘传感器 并发出"头变"事件.
| 参数 | 类型 | 说明 |
|---|---|---|
options | ListeningOptions | - 节奏行为的可选配置 |
自: 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 | 类型 | 说明 |
|---|---|---|
value | number | 坐标为度(0-360) |
监听选项
配置罗盘监听行为的选项 .
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
minInterval | number | 以毫秒计的标题变化事件之间的最小间隔 。 下值 = 更新频率较高,但CPU/电池使用率较高. | 100 | 8.1.4 (中文(简体) ) |
minHeadingChange | number | 触发事件所需的最小方向变化 。 下值 = 更敏感但事件更多. 手接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相相. | 2.0 | 8.1.4 (中文(简体) ) |
标题 更改事件
变化事件标题的事件数据 .
| Prop | 类型 | 说明 |
|---|---|---|
value | number | 坐标为度(0-360) |
精确变化事件
准确性变化事件的事件数据.
| Prop | 类型 | 说明 |
|---|---|---|
accuracy | CompassAccuracy | 指南针的当前精确度 |
权限状态
指南针插件的授权状态 .
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
compass | PermissionState | 访问罗盘/位置数据的许可状态 。 在iOS上,这需要位置许可才能访问标题. 在Android上,指南针传感器不需要特殊许可. | 7.0.0 (单位:千美元) |
类型异名
权限状态
'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'
数字
指南精确度
| 成员 | 数值 | 说明 |
|---|---|---|
HIGH | 3 | 高度精度 - 大约为5度以下的错误 |
MEDIUM | 2 | 中度精确度 - 大约为10度以下的错误 |
LOW | 1 | 低精度 - 大约为15度以下的错误 |
UNRELIABLE | 0 | 不可靠的精确度 - 大约为15度以上的误差 |
UNKNOWN | -1 | 未知的精确值 |
贷项
此插件的灵感来自 电容-内在-辅助材料 嘿,这是蝙蝠侠.