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

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 statische Methode requestPermission() des DeviceOrientationEvent-Interfaces fordert die Erlaubnis des Benutzers an, um auf Gerätorientierungsdaten 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 eine transiente Aktivierung, was bedeutet, dass sie durch ein UI-Ereignis wie einen Klick auf einen Button ausgelöst werden muss.

Syntax

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

Parameter

absolute Optional

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

Rückgabewert

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

Ausnahmen

Das zurückgegebene Promise schlägt mit den folgenden Ausnahmen fehl:

NotAllowedError DOMException

Der Berechtigungsstatus 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 diese Funktion funktioniert.

Beispiele

Anfordern der Erlaubnis zur Geräteorientierung 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 Erlaubnis zur absoluten Orientierung

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 das 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

Spezifikation
Device Orientation and Motion
# dom-deviceorientationevent-requestpermission

Browser-Kompatibilität

Siehe auch