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

瀏覽器相容性

另見