1. 引言
The Gyroscope API extends the Generic Sensor API [GENERIC-SENSOR] to provide information about the angular velocity around the device’s local X, Y and Z axis in terms of radian per seconds units.
2. 使用案例和需求
The use cases and requirements are addressed in the Motion Sensors Explainer document.
3. 示例
let sensor= new Gyroscope(); sensor. start(); sensor. onreading= () => { console. log( "Angular velocity around the X-axis " + sensor. x); console. log( "Angular velocity around the Y-axis " + sensor. y); console. log( "Angular velocity around the Z-axis " + sensor. z); }; sensor. onerror= event=> console. log( event. error. name, event. error. message);
4. 安全与隐私考虑
传感器读数(如陀螺仪等惯性传感器)可能被攻击者用于实现各种安全威胁,例如键盘记录、位置追踪、指纹识别、用户识别,甚至窃听。
安全社区发表的研究论文,例如[KEYSTROKEDEFENSE],指出仅通过降低采样频率并不能完全消除攻击风险,而降低频率又会严重影响合法使用传感器的 Web 应用的可用性。
The [TOUCHSIGNATURES] research paper proposes that implementations can provide visual indication when inertial sensors are in use and/or require explicit user consent to access sensor readings. These mitigation strategies complement the generic mitigations defined in the Generic Sensor API [GENERIC-SENSOR].
5. 权限策略集成
This specification utilizes the policy-controlled feature identified by the string "gyroscope" defined in [DEVICE-ORIENTATION].
6. 模型
The Gyroscope sensor type has the following associated data
- 扩展传感器接口
- 传感器权限名称
- 传感器特性名称
- 权限撤销算法
-
Invoke the generic sensor permission revocation algorithm with "
gyroscope". - 默认传感器
-
设备的主陀螺仪传感器。
- 虚拟传感器类型
A latest reading of a Sensor of Gyroscope sensor type includes three entries whose keys are "x", "y", "z" and whose values contain current angular velocity about the corresponding axes.
The angular velocity is the rate at which the device rotates about a specified axis in a local coordinate system defined by the device. Its unit is the radian per second (rad/s) [SI].
The sign of the current angular velocity depends on the rotation direction and it must be according to the right-hand convention in a local coordinate system defined by the device, such that positive rotation around an axis is clockwise when viewed along the positive direction of the axis (see figure below).

6.1. 参考框架
The local coordinate system represents the reference frame for the Gyroscope readings. It can be either the device coordinate system or the screen coordinate system.
7. API
7.1. 陀螺仪接口
[SecureContext ,Exposed =Window ]interface :Gyroscope Sensor {constructor (optional GyroscopeSensorOptions = {});sensorOptions readonly attribute double ?;x readonly attribute double ?;y readonly attribute double ?; };z enum {GyroscopeLocalCoordinateSystem ,"device" };"screen" dictionary :GyroscopeSensorOptions SensorOptions {GyroscopeLocalCoordinateSystem = "device"; };referenceFrame
new Gyroscope(sensorOptions) constructor steps are to invoke the construct a gyroscope object abstract operation with this and sensorOptions.Supported sensor options for Gyroscope are "frequency" and "referenceFrame".
7.1.1. Gyroscope.x
The x attribute of the Gyroscope interface represents the current angular velocity around X-axis. In other words, this attribute returns the result of invoking get value from latest reading with
7.1.2. Gyroscope.y
The y attribute of the Gyroscope interface represents the current angular velocity around Y-axis. In other words, this attribute returns the result of invoking get value from latest reading with
7.1.3. Gyroscope.z
The z attribute of the Gyroscope interface represents the current angular velocity around Z-axis. In other words, this attribute returns the result of invoking get value from latest reading with
8. 抽象操作
8.1. 构造 Gyroscope 对象
- input (输入)
-
object, a
Gyroscopeobject. -
options, a
GyroscopeSensorOptionsobject.
-
Let allowed be the result of invoking check sensor policy-controlled features with object’s sensor type.
-
If allowed is false, then
-
Invoke initialize a sensor object with object and options.
-
If options.
referenceFrameis "screen", then-
Set object’s local coordinate system to the screen coordinate system.
-
-
Otherwise, define object’s local coordinate system to the device coordinate system.
9. 自动化
This section extends Generic Sensor API § 9 Automation by providing Gyroscope-specific virtual sensor metadata.
The gyroscope virtual sensor type and its corresponding entry in the per-type virtual sensor metadata map are defined in Device Orientation and Motion § automation.
10. 致谢
Tobie Langel for the work on Generic Sensor API.
11. 符合性
Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.
本规范的所有文本均为规范性文本,明确标记为非规范性的部分、示例和注释除外。 [RFC2119]
A conformant user agent must implement all the requirements listed in this specification that are applicable to user agents.
The IDL fragments in this specification must be interpreted as required for conforming IDL fragments, as described in the Web IDL specification. [WEBIDL]