Generic Sensor API


与现有传感器接口相比,Generic Sensor API有许多优势:
  • Generic Sensor API 是一个传感器框架,可以使用新的传感器类轻松扩展,并且每个类都将保留通用接口。为一种传感器类型编写的客户端代码可以重新用于另一种,只需很少的修改!
  • 您可以配置传感器,例如,设置适合您应用需求的采样频率。
  • 您可以检测平台上是否有对应传感器。
  • 传感器读数具有高精度时间戳,可以更好地与应用程序中的其他活动同步。
  • 传感器数据模型和坐标系统明确定义,允许浏览器供应商实现可互操作的解决方案。
  • Generic Sensor 的基础接口没有绑定到 DOM(Navigator和Window对象),为将来在Service Workers中使用相同的 API 或在 Headless JS 运行时实现 Generic Sensor API(例如在嵌入式设备上)开辟了的机会。
  • 与传统的传感器API相比,安全性和隐私方面是 Generic Sensor API 的首要任务,并且提供了更好的安全级别。目前已经集成了Permissions API。
  • 自动的屏幕坐标同步目前可于 Accelerometer,Gyroscope,LinearAccelerationSensor,AbsoluteOrientationSensor,RelativeOrientationSensor和Magnetometer。

支持的传感器有:
运动传感器(Motion sensors):
  • 加速度计(Accelerometer)
  • 陀螺仪(Gyroscope)(X,Y和Z轴的角速度)
  • 线性加速度传感器(LinearAccelerationSensor)
  • 绝对方向传感器(AbsoluteOrientationSensor)
  • 相对方向传感器(RelativeOrientationSensor)
环境传感器(Environmental sensors):
  • 环境光传感器(AmbientLightSensor)
  • 磁力计(Magnetometer)

Generic Sensor API集成了Feature Policy用于控制在frame上访问传感器数据。

传感器读数只能通过可见网页访问,即用户实际上正在与之交互时。而且,如果用户聚焦到跨域子frame传感器读数传送将会在父页面上被暂停,以防止在跨域子frame中的第三方软件窃取到用户信息。