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> & PluginListenerHandleAdd 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> & PluginListenerHandleAdd 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