跳到主要内容
版本:v5

@capacitor/motion

Motion API 用于追踪加速度计和设备方向(指南针航向等)

安装

npm install @capacitor/motion@latest-5
npx cap sync

权限说明

当前插件基于 Web API 实现。大多数浏览器在使用此 API 前需要请求权限。可通过用户触发操作(如按钮点击)来申请权限:

import { PluginListenerHandle } from '@capacitor/core';
import { Motion } from '@capacitor/motion';

let accelHandler: PluginListenerHandle;

myButton.addEventListener('click', async () => {
try {
await DeviceMotionEvent.requestPermission();
} catch (e) {
// 错误处理
return;
}

// 用户授权后开始监听:
accelHandler = await Motion.addListener('accel', (event) => {
console.log('设备运动事件:', event);
});
});

// 停止加速度监听
const stopAcceleration = () => {
if (accelHandler) {
accelHandler.remove();
}
};

// 移除所有监听器
const removeListeners = () => {
Motion.removeAllListeners();
};

有关'accel'事件中提供的数据详情,请参考 DeviceMotionEvent API文档。

API

addListener('accel', ...)

addListener(eventName: 'accel', listenerFunc: AccelListener) => Promise<PluginListenerHandle> & PluginListenerHandle

添加加速度计数据监听器

参数类型
eventName'accel'
listenerFunc
AccelListener

返回值:

Promise<PluginListenerHandle> & PluginListenerHandle

自版本: 1.0.0


addListener('orientation', ...)

addListener(eventName: 'orientation', listenerFunc: OrientationListener) => Promise<PluginListenerHandle> & PluginListenerHandle

添加设备方向变化监听器(指南针航向等)

参数类型
eventName'orientation'
listenerFunc
OrientationListener

返回值:

Promise<PluginListenerHandle> & PluginListenerHandle

自版本: 1.0.0


removeAllListeners()

removeAllListeners() => Promise<void>

移除该插件所有监听器

自版本: 1.0.0


Interfaces

PluginListenerHandle

属性类型
remove() => Promise<void>

AccelListenerEvent

属性类型描述版本
acceleration
Acceleration
包含设备在X/Y/Z三轴上加速度的对象。Acceleration单位为m/s²1.0.0
accelerationIncludingGravity
Acceleration
包含设备在X/Y/Z三轴上含重力影响的加速度的对象。Acceleration单位为m/s²1.0.0
rotationRate
RotationRate
包含设备在alpha/beta/gamma三轴上旋转速率的对象。旋转速率单位为度/秒1.0.0
intervalnumber从设备获取数据的时间间隔(毫秒)1.0.0

Acceleration

属性类型描述版本
xnumberX轴方向的加速度值1.0.0
,y`numberY轴方向的加速度值1.0.0
znumberZ轴方向的加速度值1.0.0

RotationRate

属性类型描述版本
alphanumber绕Z轴的旋转速率(度/秒)1.0.0
betanumber绕X轴的旋转速率(度/秒)1.0.0
gammanumber绕Y轴的旋转速率(度/秒)1.0.0

Type Aliases

AccelListener


  (event: AccelListenerEvent): void

OrientationListener


  (event: RotationRate): void

OrientationListenerEvent


  RotationRate