此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

NavigatorUAData:getHighEntropyValues() 方法

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

备注: 此特性在 Web Worker 中可用。

NavigatorUAData 接口的 getHighEntropyValues() 方法返回一个 Promise,它兑现为一个字典对象,其中包含低熵信息以及关于浏览器的请求的高熵信息。

兑现后的对象包含默认包含在 NavigatorUAData 对象中的“低熵”属性——这些值不太可能用于识别用户指纹。它还包含参数对象中请求的、且已获授权的“高熵”值子集。这些值更可能被用于指纹识别。需注意,低熵高熵的定义与 HTTP 用户代理客户端提示机制中的定义相同。

备注:通过 ch-ua-high-entropy-values Permissions-Policy 可控制 getHighEntropyValues() 方法获取高熵用户代理数据的行为。如果权限不允许,方法只会返回 brandsmobilesplatform 低熵数据。

语法

js
getHighEntropyValues(hints)

参数

hints

包含要返回的高熵提示的数组,为以下中的一个或多个:

  • "architecture"
  • "bitness"
  • "formFactors"
  • "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 标头中将该信息发送到服务器。

formFactors

包含设备外形尺寸的字符串数组。。例如,["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));

规范

Specification
User-Agent Client Hints
# dom-navigatoruadata-gethighentropyvalues

浏览器兼容性

参见