OrientationSensor

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die OrientationSensor-Schnittstelle der Sensor APIs ist die Basisklasse für Orientierungssensoren. Diese Schnittstelle kann nicht direkt verwendet werden. Stattdessen bietet sie Eigenschaften und Methoden, auf die über Schnittstellen zugegriffen wird, die von ihr erben.

Diese Funktion kann durch eine auf Ihrem Server gesetzte Permissions Policy blockiert werden.

EventTarget Sensor OrientationSensor

Schnittstellen basierend auf OrientationSensor

Nachfolgend finden Sie eine Liste von Schnittstellen, die auf der OrientationSensor-Schnittstelle basieren.

Instanz-Eigenschaften

OrientationSensor.quaternion Nur lesbar

Gibt ein vierteiliges Array zurück, dessen Elemente die Komponenten des Einheitsquaternions enthalten, das die Ausrichtung des Geräts darstellt.

Instanz-Methoden

OrientationSensor.populateMatrix()

Befüllt das angegebene Objekt mit der Rotationsmatrix basierend auf der neuesten Sensorablesung.

Beispiele

Einfaches Beispiel

Das folgende Beispiel, das lose auf Intels Orientation Phone-Demo basiert, instanziiert einen AbsoluteOrientationSensor mit einer Frequenz von 60 Mal pro Sekunde. Bei jeder Ablesung verwendet es OrientationSensor.quaternion, um ein visuelles Modell eines Telefons zu drehen.

js
const options = { frequency: 60, referenceFrame: "device" };
const sensor = new AbsoluteOrientationSensor(options);

sensor.addEventListener("reading", () => {
  // model is a Three.js object instantiated elsewhere.
  model.quaternion.fromArray(sensor.quaternion).inverse();
});
sensor.addEventListener("error", (error) => {
  if (event.error.name === "NotReadableError") {
    console.log("Sensor is not available.");
  }
});
sensor.start();

Berechtigungsbeispiel

Die Verwendung von Orientierungssensoren erfordert das Anfordern von Berechtigungen für mehrere Gerätesensoren. Da die Permissions-Schnittstelle Versprechungen verwendet, ist ein guter Weg, um Berechtigungen anzufordern, die Verwendung von Promise.all.

js
const sensor = new AbsoluteOrientationSensor();
Promise.all([
  navigator.permissions.query({ name: "accelerometer" }),
  navigator.permissions.query({ name: "magnetometer" }),
  navigator.permissions.query({ name: "gyroscope" }),
]).then((results) => {
  if (results.every((result) => result.state === "granted")) {
    sensor.start();
    // …
  } else {
    console.log("No permissions to use AbsoluteOrientationSensor.");
  }
});

Spezifikationen

Specification
Orientation Sensor
# orientationsensor-interface

Browser-Kompatibilität

BCD tables only load in the browser