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

View in English Always switch to English

DeviceOrientationEvent: requestPermission() statische Methode

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()-statische Methode des DeviceOrientationEvent-Interfaces fordert die Erlaubnis des Nutzers an, auf die Geräteorientierungsdaten von den Beschleunigungs- und Gyroskopsensoren zuzugreifen. Sie kann auch die Erlaubnis anfordern, auf Magnetometerdaten zuzugreifen, wenn eine absolute Orientierung benötigt wird. Diese Methode erfordert transiente Aktivierung, was bedeutet, dass sie durch ein UI-Ereignis wie einen Button-Klick ausgelöst werden muss.

Syntax

js
DeviceOrientationEvent.requestPermission()
DeviceOrientationEvent.requestPermission(absolute)

Parameter

absolute Optional

Ein boolescher Wert, der angibt, ob absolute Orientierungsdaten benötigt werden. Wenn true, umfasst die Erlaubnisanfrage auch den Magnetometersensor. Standardmäßig auf false.

Rückgabewert

Ein Promise, der mit einem String aufgelöst wird, der entweder "granted" oder "denied" ist.

Ausnahmen

Das zurückgegebene Promise lehnt die folgenden Ausnahmen ab:

NotAllowedError DOMException

Der Erlaubnisstatus ist "prompt" und die aufrufende Funktion hat keine transiente Aktivierung.

Sicherheit

Transiente Benutzeraktivierung ist erforderlich. Der Benutzer muss mit der Seite oder einem UI-Element interagieren, damit dieses Feature funktioniert.

Beispiele

Anfordern der Geräteorientierungserlaubnis bei Klick

js
document.querySelector("button").addEventListener("click", async () => {
  if (typeof DeviceOrientationEvent.requestPermission !== "function") {
    // The feature is not available, or does not need permission.
    return;
  }

  const permission = await DeviceOrientationEvent.requestPermission();
  if (permission === "granted") {
    window.addEventListener("deviceorientation", (event) => {
      console.log(`Alpha: ${event.alpha}`);
      console.log(`Beta: ${event.beta}`);
      console.log(`Gamma: ${event.gamma}`);
    });
  }
});

Anfordern der absoluten Orientierungserlaubnis

Wenn absolute Orientierungsdaten benötigt werden (z.B. für kompassbasierte Anwendungen), übergeben Sie true als absolute Parameter. Dies fordert zusätzlich den Zugriff auf den Magnetometer an.

js
document.querySelector("button").addEventListener("click", async () => {
  if (typeof DeviceOrientationEvent.requestPermission !== "function") {
    return;
  }

  const permission = await DeviceOrientationEvent.requestPermission(true);
  if (permission === "granted") {
    window.addEventListener("deviceorientationabsolute", (event) => {
      console.log(`Absolute alpha: ${event.alpha}`);
    });
  }
});

Spezifikationen

Specification
Device Orientation and Motion
# dom-deviceorientationevent-requestpermission

Browser-Kompatibilität

Siehe auch