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

View in English Always switch to English

RelativeOrientationSensor

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 RelativeOrientationSensor-Schnittstelle der Sensor APIs beschreibt die physische Orientierung des Geräts, ohne das Bezugssystem der Erde zu beachten.

Um diesen Sensor zu nutzen, muss der Benutzer die Berechtigung für die Gerätesensoren 'accelerometer' und 'gyroscope' über die Permissions API erteilen. Darüber hinaus kann diese Funktion durch eine auf Ihrem Server gesetzte Permissions Policy blockiert werden.

EventTarget Sensor OrientationSensor RelativeOrientationSensor

Konstruktor

RelativeOrientationSensor()

Erstellt ein neues RelativeOrientationSensor-Objekt.

Instanz-Eigenschaften

Keine spezifischen Eigenschaften; erbt Eigenschaften von seinen Vorfahren OrientationSensor und Sensor.

Instanz-Methoden

Keine spezifischen Methoden; erbt Methoden von seinen Vorfahren OrientationSensor und Sensor.

Ereignisse

Keine spezifischen Ereignisse; erbt Ereignisse von seinem Vorfahren, Sensor.

Beispiele

Einfaches Beispiel

Das folgende Beispiel, das lose auf Intels Orientation Phone Demo basiert, instanziiert einen RelativeOrientationSensor mit einer Frequenz von 60 Mal pro Sekunde.

Hinweis: Das Intel-Demo, auf dem dies basiert, verwendet den AbsoluteOrientationSensor. Bei jeder Messung wird OrientationSensor.quaternion verwendet, um ein visuelles Modell eines Telefons zu drehen.

js
const options = { frequency: 60, referenceFrame: "device" };
const sensor = new RelativeOrientationSensor(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 eine gute Möglichkeit, Berechtigungen anzufordern, die Verwendung von Promise.all.

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

Spezifikationen

Specification
Orientation Sensor
# relativeorientationsensor-interface

Browser-Kompatibilität