Motion
Motion API 用于追踪加速度计和设备方向(罗盘朝向等)数据
权限说明
本插件当前基于 Web 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 以了解事件参数详情。
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
移除本插件的所有监听器
Interfaces
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 |