DeviceMotionEvent: requestPermission() statische Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die requestPermission() statische Methode der DeviceMotionEvent Schnittstelle fordert die Erlaubnis des Benutzers an, auf Bewegungsdaten des Geräts von den Beschleunigungs- und Gyroskop-Sensoren zuzugreifen. Diese Methode erfordert eine transiente Aktivierung, was bedeutet, dass sie durch ein UI-Ereignis wie einen Button-Klick ausgelöst werden muss.
Syntax
DeviceMotionEvent.requestPermission()
Parameter
Keine.
Rückgabewert
Ein Promise, das mit einem String aufgelöst wird, der entweder "granted" oder "denied" ist.
Ausnahmen
Das zurückgegebene Promise wird mit den folgenden Ausnahmen abgelehnt:
NotAllowedErrorDOMException-
Der Berechtigungsstatus ist
"prompt"und die aufrufende Funktion hat keine transiente Aktivierung.
Sicherheit
Eine transiente Benutzeraktivierung ist erforderlich. Der Benutzer muss mit der Seite oder einem UI-Element interagieren, damit diese Funktionalität funktioniert.
Beispiele
>Anfordern der Erlaubnis für Bewegungsdaten bei Klick
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}`);
});
}
});
Spezifikationen
| Spezifikation |
|---|
| Device Orientation and Motion> # dom-devicemotionevent-requestpermission> |