web api static method
DeviceMotionEvent: requestPermission() static method
Limited availabilitySecure context
The requestPermission() static method of the DeviceMotionEvent interface requests the user’s permission to access device motion data from the accelerometer and gyroscope sensors. This method requires transient activation, meaning that it must be triggered by a UI event such as a button click.
Syntax
DeviceMotionEvent.requestPermission()
Parameters
None.
Return value
A Promise that resolves with a string which is either "granted" or "denied".
Exceptions
The returned promise rejects with the following exceptions:
NotAllowedErrorDOMException- : The permission state is
"prompt"and the calling function does not have transient activation.
- : The permission state is
Security
Transient user activation is required. The user has to interact with the page or a UI element in order for this feature to work.
Examples
Requesting device motion permission on click
document.querySelector("button").addEventListener("click", async () => {
if (typeof DeviceMotionEvent.requestPermission !== "function") {
// The feature is not available, or does not need permission.
return;
}
const permission = await DeviceMotionEvent.requestPermission();
if (permission === "granted") {
window.addEventListener("devicemotion", (event) => {
console.log(`Acceleration X: ${event.acceleration.x}`);
console.log(`Acceleration Y: ${event.acceleration.y}`);
console.log(`Acceleration Z: ${event.acceleration.z}`);
});
}
});
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.