Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
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, die von Schnittstellen genutzt werden, die von ihr erben.
Diese Funktion kann durch eine auf Ihrem Server gesetzte Permissions Policy blockiert werden.
Schnittstellen basierend auf OrientationSensor
Im Folgenden finden Sie eine Liste von Schnittstellen, die auf der OrientationSensor-Schnittstelle basieren.
Instanz-Eigenschaften
OrientationSensor.quaternionSchreibgeschützt-
Gibt ein vier Element umfassendes
Arrayzurück, dessen Elemente die Komponenten des Einheitsquaternions enthalten, das die Ausrichtung des Geräts repräsentiert.
Instanz-Methoden
OrientationSensor.populateMatrix()-
Füllt das gegebene 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 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", (error) => {
if (event.error.name === "NotReadableError") {
console.log("Sensor is not available.");
}
});
sensor.start();
Berechtigungsbeispiel
Die Verwendung von Orientierungssensoren erfordert die Anforderung von Berechtigungen für mehrere Gerätesensoren. Da die Permissions-Schnittstelle Versprechen verwendet, ist es eine gute Möglichkeit, 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> # orientationsensor-interface> |
Browser-Kompatibilität
Loading...