苹果拒绝在 Safari 中实现 16 个 Web API,原因是出于隐私方面的考虑。

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费积分!

为什么?指纹识别。这些 API 并没有被用于其预期目的,而是被用于粗俗的广告技术。例如,“我们不知道你究竟是谁,但通过脚本,我们可以知道你的手机在早上 8:00 到 8:13 之间停止了闲置状态,并且靠近 JBL BATHROOM 蓝牙设备,所以可能是爸爸在早上上厕所!让我们尽快向他展示一些关于更优质扬声器和法兰绒衬衫的广告。”

我将从 Catalin Cimpanu 的文章 中提取完整的列表。

  • Web Bluetooth – 允许网站连接到附近的蓝牙 LE 设备。
  • Web MIDI API – 允许网站枚举、操作和访问 MIDI 设备。
  • 磁力计 API – 允许网站访问用户周围本地磁场的数据,这些数据由设备的主磁力计传感器检测到。
  • Web NFC API – 允许网站通过设备的 NFC 读取器与 NFC 标签通信。
  • 设备内存 API – 允许网站以千兆字节为单位接收设备内存的近似量。
  • 网络信息 API – 提供有关设备用于与网络通信的连接的信息,并提供了一种方法,使脚本能够在连接类型更改时收到通知。
  • 电池状态 API – 允许网站接收有关托管设备的电池状态的信息。
  • Web 蓝牙扫描 – 允许网站扫描附近的蓝牙 LE 设备。
  • 环境光传感器 – 允许网站通过设备的原生传感器获取托管设备周围环境光的当前光照水平或照度。
  • EME 的 HDCP 策略检查扩展 – 允许网站检查 HDCP 策略,用于媒体流/播放。
  • 接近传感器 – 允许网站检索有关设备与物体之间距离的数据,这些数据由接近传感器测量。
  • WebHID – 允许网站检索有关本地连接的人机界面设备 (HID) 的信息。
  • 串行 API – 允许网站写入和读取串行接口的数据,这些接口由微控制器、3D 打印机等设备使用。
  • Web USB – 允许网站通过 USB(通用串行总线)与设备通信。
  • 地理位置传感器(后台地理位置)– 旧版地理位置 API 的更现代版本,允许网站访问地理位置数据。
  • 用户空闲检测 – 允许网站知道用户何时处于空闲状态。

我的感受很复杂。我确实喜欢 Web 成为一个构建任何类型的应用程序的竞争平台的想法,有时像这样的花哨 API 会打开这些大门。

更不用说,其中一些 API 旨在执行负责任的操作,例如通过网络信息 API 了解连接速度,并在您可以的情况下发送更少的数据,以及电池状态 API 也一样。

这与 CSS 中的 :visited 类似。您是否注意到在已访问链接上无法使用某些 CSS 声明?JavaScript API 甚至会 直接撒谎 关于已访问链接的当前样式,以使链接始终显示为未访问。因为指纹识别。

直接链接 →