NavigatorUAData: getHighEntropyValues() 方法
注意:此功能在 Web Workers 中可用。
getHighEntropyValues()
是 NavigatorUAData
接口的一个 Promise
,它会解析为一个包含用户代理返回的高熵值的字典对象。
注意:术语高熵和低熵指的是这些值揭示的有关浏览器的信息量。作为属性返回的值被认为是低熵的,并且不太可能识别用户。getHighEntropyValues()
返回的值可能会泄露更多信息。因此,这些值通过 Promise
检索,以便浏览器有时间请求用户权限或进行其他检查。
语法
getHighEntropyValues(hints)
参数
hints
-
包含要返回的提示的数组,可以是以下一项或多项
"architecture"
"bitness"
"formFactor"
"fullVersionList"
"model"
"platformVersion"
"uaFullVersion"
已弃用"wow64"
返回值
一个 Promise
,解析为一个对象,其中包含以下某些或所有值(基于请求的提示)
brands
-
返回一个包含
brand
和version
的对象数组,分别指定浏览器品牌及其版本(与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 解析时,此信息将打印到控制台。
navigator.userAgentData
.getHighEntropyValues([
"architecture",
"model",
"platformVersion",
"fullVersionList",
])
.then((values) => console.log(values));
规范
规范 |
---|
用户代理客户端提示 # dom-navigatoruadata-gethighentropyvalues |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。