AbsoluteOrientationSensor
接口在
Sensor APIs
describes the device's physical orientation in relation to the Earth's reference coordinate system.
To use this sensor, the user must grant permission to the
'accelerometer'
,
'gyroscope'
,和
'magnetometer'
device sensors through the
权限
API。
If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. See
Feature-Policy
for implementation instructions.
AbsoluteOrientationSensor.AbsoluteOrientationSensor()
AbsoluteOrientationSensor
对象。
No specific properties; inherits methods from its ancestors
OrientationSensor
and
传感器
.
No specific event handlers; inherits methods from its ancestor,
传感器
.
No specific methods; inherits methods from its ancestors
OrientationSensor
and
传感器
.
The following example, which is loosely based on
Intel's Orientation Phone demo
, instantiates an
AbsoluteOrientationSensor
with a frequency of 60 times a second. On each reading it uses
OrientationSensor.quaternion
to rotate a visual model of a phone.
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();
Using orientation sensors requires requesting permissions for multiple device sensors. Because the
权限
uses promises, a good way to request permissions is to use
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.");
}
});
| 规范 | 状态 | 注释 |
|---|---|---|
| Generic Sensor API | 候选推荐 | Defines sensors in general. |
|
Orientation Sensor
The definition of 'AbsoluteOrientationSensor' in that specification. |
候选推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
AbsoluteOrientationSensor
|
Chrome 69 | Edge ≤79 | Firefox No | IE No | Opera 56 | Safari No | WebView Android 69 | Chrome Android 69 | Firefox Android ? | Opera Android 48 | Safari iOS ? | Samsung Internet Android 10.0 |
AbsoluteOrientationSensor()
构造函数
|
Chrome 69 | Edge ≤79 | Firefox No | IE No | Opera 56 | Safari No | WebView Android 69 | Chrome Android 69 | Firefox Android ? | Opera Android 48 | Safari iOS ? | Samsung Internet Android 10.0 |
完整支持
不支持
兼容性未知