DeviceMotionEvent: Static-Methode requestPermission()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die requestPermission()-Methode der Schnittstelle DeviceMotionEvent fordert die Erlaubnis des Benutzers an, auf Bewegungsdaten des Geräts von den Beschleunigungs- und Gyroskopsensoren zuzugreifen. Diese Methode erfordert eine transiente Aktivierung, was bedeutet, dass sie durch eine Benutzeroberflächeninteraktion wie einen Klick auf eine Schaltfläche ausgelöst werden muss.
Syntax
DeviceMotionEvent.requestPermission()
Parameter
Keine.
Rückgabewert
Ein Promise, der 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 Funktion funktioniert.
Beispiele
>Anfordern der Bewegungsberechtigung des Geräts 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
| Specification |
|---|
| Device Orientation and Motion> # dom-devicemotionevent-requestpermission> |