@capacitor/motion
The Motion API tracks accelerometer and device orientation (compass heading, etc.)
Installโ
npm install @capacitor/motion
npx cap sync
Permissionsโ
This 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.
APIโ
addListener('accel', ...)โ
addListener(eventName: 'accel', listenerFunc: AccelListener) => Promise<PluginListenerHandle>
Add a listener for accelerometer data
Param | Type |
---|---|
eventName | 'accel' |
listenerFunc |
|
Returns:
Promise<PluginListenerHandle>
Since: 1.0.0
addListener('orientation', ...)โ
addListener(eventName: 'orientation', listenerFunc: OrientationListener) => Promise<PluginListenerHandle>
Add a listener for device orientation change (compass heading, etc.)
Param | Type |
---|---|
eventName | 'orientation' |
listenerFunc |
|
Returns:
Promise<PluginListenerHandle>
Since: 1.0.0
removeAllListeners()โ
removeAllListeners() => Promise<void>
Remove all the listeners that are attached to this plugin.
Since: 1.0.0
Interfacesโ
PluginListenerHandleโ
Prop | Type |
---|---|
remove | () => Promise<void> |
AccelListenerEventโ
Prop | Type | Description | Since |
---|---|---|---|
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 |
| 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 |
| 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 |
Accelerationโ
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 |
RotationRateโ
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 |
Type Aliasesโ
AccelListenerโ
(event: AccelListenerEvent): void
OrientationListenerโ
(event: RotationRate): void
OrientationListenerEventโ
RotationRate