跳至主要内容
版本: v8

@capacitor/motion

运动 API 跟踪加速度计和设备方向(指南针方向等)。

安装

npm install @capacitor/motion
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) {
// Handle error
return;
}

// Once the user approves, can start listening:
accelHandler = await Motion.addListener('accel', event => {
console.log('Device motion event:', event);
});
});

// Stop the acceleration listener
const stopAcceleration = () => {
if (accelHandler) {
accelHandler.remove();
}
};

// Remove all listeners
const removeListeners = () => {
Motion.removeAllListeners();
};

查看 DeviceMotionEvent API 以了解“accel”事件中提供的数据。

API

addListener('accel', ...)

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

添加加速度计数据的监听器

参数类型
eventName'accel'
listenerFuncAccelListener

**返回:** Promise<PluginListenerHandle>

1.0.0


addListener('orientation', ...)

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

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

参数类型
eventName'orientation'
listenerFuncOrientationListener

**返回:** Promise<PluginListenerHandle>

1.0.0


removeAllListeners()

removeAllListeners() => Promise<void>

删除附加到此插件的所有监听器。

1.0.0


接口

PluginListenerHandle

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

AccelListenerEvent

属性类型描述
accelerationAcceleration一个对象,给出设备在三个轴 X、Y 和 Z 上的加速度。 加速度 以 m/s 表示。1.0.0
accelerationIncludingGravityAcceleration一个对象,给出设备在三个轴 X、Y 和 Z 上的加速度,包括重力影响。 加速度 以 m/s 表示。1.0.0
rotationRateRotationRate一个对象,给出设备在三个方向轴 alpha、beta 和 gamma 上的方向变化率。旋转率以度/秒表示。1.0.0
intervalnumber表示从设备获取数据的间隔时间的数字,以毫秒为单位。1.0.0

Acceleration

属性类型描述
xnumber沿 X 轴的加速度量。1.0.0
ynumber沿 Y 轴的加速度量。1.0.0
znumber沿 Z 轴的加速度量。1.0.0

RotationRate

属性类型描述
alphanumber围绕 Z 轴的旋转量,以度/秒表示。1.0.0
betanumber围绕 X 轴的旋转量,以度/秒表示。1.0.0
gammanumber围绕 Y 轴的旋转量,以度/秒表示。1.0.0

类型别名

AccelListener

(event: AccelListenerEvent): void

OrientationListener

(event: RotationRate): void

OrientationListenerEvent

RotationRate