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 | |
返回值:
PluginListenerHandle
addListener(...)
addListener(eventName: 'orientation', listenerFunc: (event: MotionOrientationEventResult) => void) => PluginListenerHandle
监听设备方向变化(罗盘航向等)
| 参数 | 类型 |
|---|---|
eventName | "orientation" |
listenerFunc | |
返回值:
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; } |
interval | number |
MotionOrientationEventResult
| 属性 | 类型 |
|---|---|
alpha | number |
beta | number |
gamma | number |