The Motion API tracks accelerometer and device orientation (compass heading, etc.)
npm install @capacitor/motion
npx cap syncThis plugin is currently implemented using Web APIs. Most browsers require permission before using this API. To request permission, prompt the user for permission on any user-initiated action (such as a button click):
import { PluginListenerHandle } from '@capacitor/core';
import { Motion } from '@capacitor/motion';
let accelHandler: PluginListenerHandle;
myButton.addEventListener('click', async () => {
try {
await DeviceMotionEvent.requestPermission();
} catch (e) {
// Handle error
return;
}
// Once the user approves, can start listening:
accelHandler = await Motion.addListener('accel', event => {
console.log('Device motion event:', event);
});
});
// Stop the acceleration listener
const stopAcceleration = () => {
if (accelHandler) {
accelHandler.remove();
}
};
// Remove all listeners
const removeListeners = () => {
Motion.removeAllListeners();
};See the DeviceMotionEvent API to understand the data supplied in the ‘accel’ event.
addListener(eventName: 'accel', listenerFunc: AccelListener) => Promise<PluginListenerHandle> & PluginListenerHandle
Add a listener for accelerometer data
| Param | Type |
|---|---|
eventName |
'accel' |
listenerFunc |
AccelListener |
Returns:
Promise<PluginListenerHandle> & PluginListenerHandle
Since: 1.0.0
addListener(eventName: 'orientation', listenerFunc: OrientationListener) => Promise<PluginListenerHandle> & PluginListenerHandle
Add a listener for device orientation change (compass heading, etc.)
| Param | Type |
|---|---|
eventName |
'orientation' |
listenerFunc |
OrientationListener |
Returns:
Promise<PluginListenerHandle> & PluginListenerHandle
Since: 1.0.0
removeAllListeners() => Promise<void>
Remove all the listeners that are attached to this plugin.
Since: 1.0.0
| Prop | Type |
|---|---|
remove |
() => Promise<void> |
| Prop | Type | Description | Since |
|---|---|---|---|
acceleration |
Acceleration |
An object giving the acceleration of the device on the three axis X, Y and Z. Acceleration is expressed in m/s | 1.0.0 |
accelerationIncludingGravity |
Acceleration |
An object giving the acceleration of the device on the three axis X, Y and Z with the effect of gravity. Acceleration is expressed in m/s | 1.0.0 |
rotationRate |
RotationRate |
An object giving the rate of change of the device’s orientation on the three orientation axis alpha, beta and gamma. Rotation rate is expressed in degrees per seconds. | 1.0.0 |
interval |
number |
A number representing the interval of time, in milliseconds, at which data is obtained from the device. | 1.0.0 |
| Prop | Type | Description | Since |
|---|---|---|---|
x | number |
The amount of acceleration along the X axis. | 1.0.0 |
y |
number |
The amount of acceleration along the Y axis. | 1.0.0 |
z |
number |
The amount of acceleration along the Z axis. | 1.0.0 |
| Prop | Type | Description | Since |
|---|---|---|---|
alpha |
number |
The amount of rotation around the Z axis, in degrees per second. | 1.0.0 |
beta |
number |
The amount of rotation around the X axis, in degrees per second. | 1.0.0 |
gamma |
number |
The amount of rotation around the Y axis, in degrees per second. | 1.0.0 |
(event: AccelListenerEvent): void
(event: RotationRate): void