@capacitor/motion
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) {
// 处理错误
return;
}
// 用户批准后,可以开始监听:
accelHandler = await Motion.addListener('accel', event => {
console.log('Device motion event:', event);
});
});
// 停止加速度监听器
const stopAcceleration = () => {
if (accelHandler) {
accelHandler.remove();
}
};
// 移除所有监听器
const removeListeners = () => {
Motion.removeAllListeners();
};
请参阅 DeviceMotionEvent API 来了解 'accel' 事件中提供的数据。
API 参考
addListener('accel', ...)
addListener(eventName: 'accel', listenerFunc: AccelListener) => Promise<PluginListenerHandle>
添加加速度计数据的监听器。
| Param | Type |
|---|---|
eventName | 'accel' |
listenerFunc | AccelListener |
返回: Promise<PluginListenerHandle>
自版本: 1.0.0
addListener('orientation', ...)
addListener(eventName: 'orientation', listenerFunc: OrientationListener) => Promise<PluginListenerHandle>
添加设备方向变化(指南针方向等)的监听器。
| Param | Type |
|---|---|
eventName | 'orientation' |
listenerFunc | OrientationListener |
返回: Promise<PluginListenerHandle>
自版本: 1.0.0
removeAllListeners()
removeAllListeners() => Promise<void>
移除附加到此插件的所有监听器。
自版本: 1.0.0
接口
PluginListenerHandle
| 属性 | 类型 |
|---|---|
remove | () => Promise<void> |
AccelListenerEvent
| 属性 | 类型 | 描述 | 自版本 |
|---|---|---|---|
acceleration | Acceleration | 一个对象,给出设备在 X、Y 和 Z 三个轴上的加速度。加速度以 m/s 表示。 | 1.0.0 |
accelerationIncludingGravity | Acceleration | 一个对象,给出设备在 X、Y 和 Z 三个轴上受重力影响下的加速度。加速度以 m/s 表示。 | 1.0.0 |
rotationRate | RotationRate | 一个对象,给出设备在 alpha、beta 和 gamma 三个方向轴上的方向变化率。旋转率以度/秒表示。 | 1.0.0 |
interval | number | 一个数字,表示从设备获取数据的时间间隔,以毫秒为单位。 | 1.0.0 |
Acceleration
| 属性 | 类型 | 描述 | 自版本 |
|---|---|---|---|
x | number | 沿 X 轴的加速度量。 | 1.0.0 |
y | number | 沿 Y 轴的加速度量。 | 1.0.0 |
z | number | 沿 Z 轴的加速度量。 | 1.0.0 |
RotationRate
| 属性 | 类型 | 描述 | 自版本 |
|---|---|---|---|
alpha | number | 绕 Z 轴的旋转量,以度/秒为单位。 | 1.0.0 |
beta | number | 绕 X 轴的旋转量,以度/秒为单位。 | 1.0.0 |
gamma | number | 绕 Y 轴的旋转量,以度/秒为单位。 | 1.0.0 |
类型别名
AccelListener
(event: AccelListenerEvent): voidOrientationListener
(event: RotationRate): voidOrientationListenerEvent
RotationRate