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.
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.
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.
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
BCD tables only load in the browser