运动传感器
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 |