Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os sites podem diferenciar entre usuários no Windows 11 e no Windows 10 e detectar a arquitetura de CPU do dispositivo usando User-Agent UA-CH (Dicas de Cliente). O formato User-Agent Client Hints é usado pelos navegadores para fornecer informações do agente do usuário aos sites.
Os sites também podem usar as informações do agente do usuário enviadas pelo navegador para detectar informações como:
- A marca do navegador.
- O número da versão do navegador.
- A plataforma do dispositivo na qual o navegador está sendo executado.
Há duas abordagens para os sites acessarem informações do agente do usuário:
- User-Agent strings (herdado).
- User-Agent Dicas de Cliente (recomendado).
Para obter detalhes sobre essas duas abordagens, consulte Detectando o Microsoft Edge do seu site.
No Microsoft Edge (e também no Google Chrome), os sites podem diferenciar entre usuários no Windows 11 e no Windows 10 e podem detectar a arquitetura da CPU do dispositivo por meio de User-Agent UA-CH (Dicas de Cliente). Essas informações podem ser encontradas nos seguintes cabeçalhos de solicitação UA-CH:
| Campo do cabeçalho | Valores que indicam Windows 10 | Valores que indicam Windows 11 |
|---|---|---|
Sec-CH-UA-Platform |
Windows |
Windows |
Sec-CH-UA-Platform-Version |
valores entre 1.0.0 e 10.0.0 |
13.0.0 e acima |
User-Agent cadeias de caracteres não serão atualizadas para diferenciar entre Windows 11 e Windows 10 ou para diferenciar entre arquiteturas de CPU. Não recomendamos o uso de cadeias de caracteres de User-Agent para recuperar dados do agente do usuário. Navegadores que não dão suporte a User-Agent Dicas de Cliente não conseguirão diferenciar entre Windows 11 e Windows 10 ou entre arquiteturas de CPU.
Navegadores compatíveis com User-Agent Dicas de Cliente
A tabela a seguir mostra quais navegadores oferecem suporte à diferenciação entre Windows 11 e Windows 10 e entre diferentes arquiteturas de CPU.
| Navegador | Dá suporte à diferenciação por meio de User-Agent Dicas de Cliente? |
|---|---|
| Microsoft Edge | Sim |
| Chrome | Sim |
| Opera | Sim |
| Firefox | Não |
| Internet Explorer 11 | Não |
Código de exemplo para detectar o Windows 11
O seguinte código detecta o Windows 11:
navigator.userAgentData.getHighEntropyValues(["platformVersion"])
.then(ua => {
if (navigator.userAgentData.platform === "Windows") {
const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);
if (majorPlatformVersion >= 13) {
console.log("Windows 11 or later");
}
else if (majorPlatformVersion > 0) {
console.log("Windows 10");
}
else {
console.log("Before Windows 10");
}
}
else {
console.log("Not running on Windows");
}
});
Código de exemplo para detectar ARM ou x86
Use a detecção da arquitetura da CPU para que seu site baixe automaticamente a versão do aplicativo criada especificamente para a CPU do usuário.
A detecção de CPU é particularmente útil para dispositivos baseados em ARM, de modo que um cliente que usa um dispositivo ARM baixe automaticamente a versão ARM nativa de um aplicativo. Isso impede que o usuário instale inadvertidamente um aplicativo criado para x86 e, em seguida, experimente desempenho reduzido devido à emulação.
O seguinte código detecta a arquitetura da CPU:
navigator.userAgentData.getHighEntropyValues(["architecture", "bitness"])
.then(ua => {
if (navigator.userAgentData.platform === "Windows") {
if (ua.architecture === 'x86') {
if (ua.bitness === '64') {
console.log("x86_64");
}
else if (ua.bitness === '32') {
console.log("x86");
}
}
else if (ua.architecture === 'arm') {
if (ua.bitness === '64') {
console.log("ARM64");
}
else if (ua.bitness === '32') {
console.log("ARM32");
}
}
}
else {
console.log("Not running on Windows");
}
});
Otimizando o desempenho de detecção com Critical-CH
Atualmente, os servidores de site devem enviar o Accept-CH cabeçalho de resposta ao cliente do navegador para solicitar campos de maior entropia não enviados no Sec-CH-UA cabeçalho por padrão. O diagrama a seguir mostra o navegador enviando cabeçalhos de solicitação para o servidor, incluindo user agent: <UA string> e recebendo cabeçalhos de resposta, incluindo Accept-CH: sec-ch-ua-platform.
Durante essa solicitação inicial, o cliente registrará as Accept-CH preferências e, nas solicitações subsequentes, incluirá sec-ch-ua-platform por padrão.
Para otimizar ainda mais esse fluxo, o novo Critical-CH cabeçalho pode ser usado além do Accept-CH cabeçalho para reemitir o cabeçalho da solicitação imediatamente, sem a necessidade de recarregar a página. O diagrama a seguir mostra o navegador enviando cabeçalhos de solicitação para o servidor, incluindo user agent: <UA string> e recebendo cabeçalhos de resposta, incluindo Accept-CH: sec-ch-ua-platform e Critical-CH: sec-ch-ua-platform. Em seguida, o navegador envia cabeçalhos de solicitação para o servidor imediatamente.
Você pode usar o Critical-CH cabeçalho para receber os cabeçalhos de alta entropia desejados com desempenho otimizado.
Lembre-se disso e Accept-CH as preferências persistirão até que os cookies de sessão sejam limpos ou até que Critical-CH um usuário limpe os dados do site ou os cookies de uma determinada origem. Para obter mais informações sobre Critical-CH, consulte Confiabilidade da Dica do Cliente.
Detectando versões específicas do Windows
A definição das versões de plataforma retornadas pela navigator.userAgentData.getHighEntropyValues API para a "platformVersion" dica (e por meio do Sec-CH-UA-Platform-Version cabeçalho) é especificada no Relatório Rascunho do Grupo da Comunidade de Dicas de Cliente do Agente do Usuário. No Windows 10 e superior, o valor é baseado na versão Windows.Foundation.UniversalApiContract.
Para detectar versões específicas do Windows, use os seguintes valores em platformVersion User-Agent Dicas de Cliente:
| Versão | Componente da primeira versão do platformVersion |
|---|---|
| Win7/8/8.1 | 0 |
| Win10 1507 | 1 |
| Win10 1511 | 2 |
| Win10 1607 | 3 |
| Win10 1703 | 4 |
| Win10 1709 | 5 |
| Win10 1803 | 6 |
| Win10 1809 | 7 |
| Win10 1903 | 8 |
| Win10 1909 | 8 |
| Win10 2004 | 10 |
| Win10 20H2 | 10 |
| Win10 21H1 | 10 |
| Win10 21H2 | 10 |
| Vitória 11 | 13+ |