AbsoluteOrientationSensor

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 AbsoluteOrientationSensor-Schnittstelle der Sensor APIs beschreibt die physische Ausrichtung des Geräts in Bezug auf das Erdkoordinatensystem.

Um diesen Sensor zu verwenden, muss der Benutzer die Erlaubnis für die Gerätesensoren 'accelerometer', 'gyroscope' und 'magnetometer' über die Permissions API erteilen.

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

EventTarget Sensor OrientationSensor AbsoluteOrientationSensor

Konstruktor

AbsoluteOrientationSensor()

Erstellt ein neues AbsoluteOrientationSensor-Objekt.

Instanzeigenschaften

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

Instanzmethoden

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

Ereignisse

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

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 wird OrientationSensor.quaternion verwendet, 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", (event) => {
  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 Versprechen verwendet, ist es eine gute Methode, Berechtigungen mit Promise.all anzufordern.

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
# absoluteorientationsensor-interface

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
AbsoluteOrientationSensor
AbsoluteOrientationSensor() constructor

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support