Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
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:

NotAllowedError DOMException

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

js
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

Browser-Kompatibilität

Siehe auch