Limited availability
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Das AbsoluteOrientationSensor
-Interface 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 KonstruktorAbsoluteOrientationSensor()
Erstellt ein neues AbsoluteOrientationSensor
-Objekt.
Keine spezifischen Eigenschaften; erbt Eigenschaften von seinen Vorfahren OrientationSensor
und Sensor
.
Keine spezifischen Methoden; erbt Methoden von seinen Vorfahren OrientationSensor
und Sensor
.
Keine spezifischen Ereignisse; erbt Methoden von seinem Vorfahren, Sensor
.
Das folgende Beispiel, das lose auf Intels Orientation Phone Demo basiert, instanziiert einen AbsoluteOrientationSensor
mit einer Frequenz von 60 Mal pro Sekunde. Bei jeder Lesung 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();
Berechtigungs-Beispiel
Die Verwendung von Orientierungssensoren erfordert das Anfordern von Berechtigungen für mehrere Gerätesensoren. Da das Permissions
-Interface Versprechen (promises
) verwendet, ist eine gute Methode, um Berechtigungen anzufordern, die Verwendung von Promise.all
.
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 Browser-Kompatibilität
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4