NavigatorUAData: getHighEntropyValues() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

注意:此功能在 Web Workers 中可用。

NavigatorUAData 接口的 getHighEntropyValues() 方法是一个 Promise,它会解析为一个包含用户代理返回的高熵值的字典对象。

注意: 高熵低熵这两个术语指的是这些值能揭示关于浏览器信息的多少。作为属性返回的值被认为是低熵值,不太可能识别用户。而 getHighEntropyValues() 返回的值可能揭示更多信息。因此,这些值是通过 Promise 检索的,为浏览器请求用户权限或进行其他检查留出时间。

语法

js
getHighEntropyValues(hints)

参数

hints

一个包含要返回的提示(hints)的数组,一个或多个以下值:

  • "architecture"
  • "bitness"
  • "formFactors"
  • "fullVersionList"
  • "model"
  • "platformVersion"
  • "uaFullVersion" 已弃用
  • "wow64"

返回值

一个 Promise,解析为一个对象,包含以下值中的部分或全部(取决于请求的提示):

brands

返回一个对象数组,包含 brandversion,指定浏览器品牌及其版本(与 NavigatorUAData.brands 提供的信息相同)。请注意,这些信息可以通过 Sec-CH-UA 头部发送到服务器(一个低熵客户端提示)。

mobile

返回一个布尔值,如果用户代理运行在移动设备上(与 NavigatorUAData.mobile 提供的信息相同)。请注意,这些信息可以通过 Sec-CH-UA-Mobile 头部发送到服务器(一个低熵客户端提示)。

platform

返回一个字符串,描述用户代理运行的平台,例如 "Windows"(与 NavigatorUAData.platform 提供的信息相同)。请注意,这些信息可以通过 Sec-CH-UA-Platform 头部发送到服务器(一个低熵客户端提示)。

architecture

一个包含平台架构的字符串。例如,"x86"。请注意,在服务器通过 Accept-CH 头部明确请求后,这些信息可以通过 Sec-CH-UA-Arch 头部发送到服务器。

bitness

一个包含架构位数的字符串。例如,"32""64"。请注意,如果服务器通过 Accept-CH 头部明确请求,这些信息可以通过 Sec-CH-UA-Bitness 头部发送到服务器。

formFactors

一个字符串数组,包含设备的形态因子(form-factors)。例如,["Tablet", "XR"]。请注意,如果服务器通过 Accept-CH 头部明确请求,这些信息可以通过 Sec-CH-UA-Form-Factors 头部发送到服务器。

fullVersionList

一个对象数组,每个对象包含 "brand""version" 属性,分别表示浏览器名称和完整版本。例如,{"brand": "Google Chrome", "version": "103.0.5060.134"}, {"brand": "Chromium", "version": "103.0.5060.134"}。请注意,其中一个对象可能故意包含无效信息,以防止网站依赖固定的浏览器列表。请注意,如果服务器通过 Accept-CH 头部明确请求,这些信息可以通过 Sec-CH-UA-Full-Version-List 头部发送到服务器。

model

一个包含移动设备型号的字符串。例如,"Pixel 2XL"。如果设备不是移动设备或设备型号未知,model 将为空字符串 ""。请注意,如果服务器通过 Accept-CH 头部明确请求,这些信息可以通过 Sec-CH-UA-Model 头部发送到服务器。

platformVersion

一个包含平台版本的字符串。平台名称本身始终作为低熵提示 platform 提供。例如,"10.0"。请注意,如果服务器通过 Accept-CH 头部明确请求,这些信息可以通过 Sec-CH-UA-Platform-Version 头部发送到服务器。

uaFullVersion 已弃用

一个包含浏览器完整版本的字符串。例如,"103.0.5060.134"。已弃用,推荐使用 fullVersionList。请注意,如果服务器通过 Accept-CH 头部明确请求,这些信息可以通过 Sec-CH-UA-Full-Version 头部发送到服务器。

wow64

一个布尔值,指示用户代理的二进制文件是否在 64 位 Windows 上以 32 位模式运行。请注意,如果服务器通过 Accept-CH 头部明确请求,这些信息可以通过 Sec-CH-UA-WoW64 头部发送到服务器。

异常

NotAllowedError DOMException

如果用户代理决定不返回一个或多个请求的 hints,则会抛出此错误。

示例

以下示例使用 getHighEntropyValues() 方法请求了多个提示。当 Promise 解析后,这些信息会被打印到控制台。

js
navigator.userAgentData
  .getHighEntropyValues([
    "architecture",
    "model",
    "platformVersion",
    "fullVersionList",
  ])
  .then((values) => console.log(values));

规范

规范
用户代理客户端提示
# dom-navigatoruadata-gethighentropyvalues

浏览器兼容性

另见