NavigatorUAData: getHighEntropyValues() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

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

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

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

语法

js
getHighEntropyValues(hints)

参数

hints

包含要返回的提示的数组,可以是以下一项或多项

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

返回值

一个 Promise,解析为一个对象,其中包含以下某些或所有值(基于请求的提示)

brands

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

mobile

如果用户代理在移动设备上运行,则返回true(与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标头。

formFactor

包含设备外形的字符串。例如,"Tablet""VR"。请注意,如果服务器在Accept-CH标头中明确请求,则此信息可以发送到服务器的Sec-CH-UA-Form-Factor标头。

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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅