跳到主要内容
版本:v2

Motion

运动 API 用于追踪加速度计和设备方向(罗盘航向等)数据。

权限

该插件目前使用 Web API 实现。大多数浏览器在使用此 API 前需要获取权限。要请求权限,可以在任何用户触发的操作(如按钮点击)中提示用户:

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

// 用户批准后,即可开始监听:
const { Motion } = Capacitor.Plugins;
Capacitor.Plugins.Motion.addListener('accel', (event) => {});
});

示例

const { Motion } = Capacitor.Plugins;
Motion.addListener('accel', (event) => {});

请参阅 DeviceMotionEvent API 以了解 event 中提供的数据。

API

addListener(...)

addListener(eventName: 'accel', listenerFunc: (event: MotionEventResult) => void) => PluginListenerHandle

监听加速度计数据

参数类型
eventName"accel"
listenerFunc
(event: MotionEventResult) => void

返回值:

PluginListenerHandle


addListener(...)

addListener(eventName: 'orientation', listenerFunc: (event: MotionOrientationEventResult) => void) => PluginListenerHandle

监听设备方向变化(罗盘航向等)

参数类型
eventName"orientation"
listenerFunc
(event: MotionOrientationEventResult) => void

返回值:

PluginListenerHandle


removeAllListeners()

removeAllListeners() => void

移除此插件的所有原生监听器


接口

PluginListenerHandle

属性类型
remove() => void

MotionEventResult

属性类型
acceleration{ x: number; y: number; z: number; }
accelerationIncludingGravity{ x: number; y: number; z: number; }
rotationRate{ alpha: number; beta: number; gamma: number; }
intervalnumber

MotionOrientationEventResult

属性类型
alphanumber
betanumber
gammanumber