AbsoluteOrientationSensor
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Giao diện AbsoluteOrientationSensor của Sensor APIs mô tả hướng vật lý của thiết bị so với hệ tọa độ tham chiếu của Trái Đất.
Để dùng cảm biến này, người dùng phải cấp quyền cho các cảm biến thiết bị 'accelerometer', 'gyroscope' và 'magnetometer' thông qua Permissions API.
Tính năng này có thể bị chặn bởi một Permissions Policy được đặt trên máy chủ của bạn.
Bộ khởi tạo
AbsoluteOrientationSensor()-
Tạo một đối tượng
AbsoluteOrientationSensormới.
Thuộc tính thể hiện
Không có thuộc tính cụ thể nào; kế thừa các thuộc tính từ các lớp cha OrientationSensor và Sensor.
Phương thức thể hiện
Không có phương thức cụ thể nào; kế thừa các phương thức từ các lớp cha OrientationSensor và Sensor.
Sự kiện
Không có sự kiện cụ thể nào; kế thừa các phương thức từ lớp cha Sensor.
Ví dụ
>Ví dụ cơ bản
Ví dụ sau, được xây dựng khá gần với Orientation Phone demo của Intel, khởi tạo một AbsoluteOrientationSensor với tần suất 60 lần mỗi giây. Ở mỗi lần đọc, ví dụ dùng OrientationSensor.quaternion để xoay một mô hình điện thoại trực quan.
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();
Ví dụ về quyền truy cập
Sử dụng cảm biến định hướng đòi hỏi yêu cầu quyền cho nhiều cảm biến thiết bị. Vì giao diện Permissions sử dụng promise, một cách tốt để yêu cầu quyền là dùng 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.");
}
});
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| Orientation Sensor> # absoluteorientationsensor-interface> |