1. 简介
陀螺仪 API 扩展了 Generic Sensor API [GENERIC-SENSOR],用于提供设备本地 X、Y 和 Z 轴周围的角速度信息, 单位为弧度每秒。
2. 用例与需求
用例和需求可参见 Motion Sensors Explainer 文档。
3. 示例
let sensor= new Gyroscope(); sensor. start(); sensor. onreading= () => { console. log( "绕 X 轴的角速度 " + sensor. x); console. log( "绕 Y 轴的角速度 " + sensor. y); console. log( "绕 Z 轴的角速度 " + sensor. z); }; sensor. onerror= event=> console. log( event. error. name, event. error. message);
4. 安全性与隐私注意事项
惯性传感器(如陀螺仪)提供的传感器读数,可能被攻击者用于发动各种安全威胁, 例如 键盘监听、 位置追踪、指纹识别、用户识别 甚至 窃听。
安全社区发表的研究论文,例如 [KEYSTROKEDEFENSE] 指出, 仅通过降低采样频率无法彻底消除攻击风险,且限频可能大大影响有正当理由使用传感器的 Web 应用的可用性。
[TOUCHSIGNATURES] 研究论文建议, 实现时可在惯性传感器被使用时提供可视化提示,和/或要求用户明确授权传感器读数的访问。 这些缓解策略补充了在 Generic Sensor API [GENERIC-SENSOR] 中定义的通用缓解措施。
5. 权限策略集成
本规范使用 策略控制特性,其标识字符串为
"gyroscope",
该字符串在 [DEVICE-ORIENTATION] 中定义。
6. 模型
Gyroscope 传感器类型包含以下相关数据:
- 扩展传感器接口
- 传感器权限名称
- 传感器特性名称
- 权限撤销算法
-
调用 通用传感器权限撤销算法, 参数为 "
gyroscope"。 - 默认传感器
-
设备的主陀螺仪传感器。
- 虚拟传感器类型
最新读数的
Sensor
Gyroscope
传感器类型
包含三个 项,其键
为 "x", "y", "z",其值为该轴当前的角速度。
角速度 指设备绕某指定轴在设备定义的本地坐标系中旋转的速率。 单位为弧度每秒(rad/s)[SI]。
当前角速度的符号取决于旋转方向, 应符合设备定义的本地坐标系的右手法则:沿轴正方向看去,为顺时针为正。 (见下图)

6.1. 参考系
本地坐标系表明
Gyroscope 读数的参考系。可以是设备坐标系,也可以是屏幕坐标系。
7. API
7.1. Gyroscope 接口
[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
Gyroscope 的 Gyroscope
支持的传感器选项包括 "frequency" 和 "referenceFrame"。
7.1.1. Gyroscope.x
x
属性表示 Gyroscope
接口当前绕 X 轴的角速度。
换句话说,该属性返回对 get value from latest reading 的调用结果,参数为
7.1.2. Gyroscope.y
y
属性表示 Gyroscope
接口当前绕 Y 轴的角速度。
换句话说,该属性返回对 get value from latest reading 的调用结果,参数为
7.1.3. Gyroscope.z
z
属性表示 Gyroscope
接口当前绕 Z 轴的角速度。
换句话说,该属性返回对 get value from latest reading 的调用结果,参数为
8. 抽象操作
8.1. 构造陀螺仪对象
- 输入
-
object,
Gyroscope对象。options,
GyroscopeSensorOptions对象。
-
令 allowed 为调用 check sensor policy-controlled features ,参数为 object 的传感器类型的结果。
-
若 allowed 为 false:
-
以 object 和 options 调用 initialize a sensor object。
-
如果 options.
referenceFrame为 "screen",则:
9. 自动化
本节扩展了 Generic Sensor API § 9 Automation,提供Gyroscope 专属的虚拟传感器元数据。
gyroscope 虚拟传感器类型及其在 每类型虚拟传感器元数据map 中的对应项,见 Device Orientation and Motion § automation。
10. 致谢
Tobie Langel 对 Generic Sensor API 的工作。
11. 一致性
一致性要求通过描述性断言和 RFC 2119 术语的组合表达。关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" 和 "OPTIONAL" 在本规范的强制性内容中, 均按 RFC 2119 描述解释。为可读性,这些词在规范并不全部大写。
除明示为非规范性、示例和注释外,规范的所有内容均为规范性文本。[RFC2119]
本规范的 IDL 片段须依《Web IDL》规范的要求进行解释和遵循。[WEBIDL]