Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os sites podem diferenciar os utilizadores no Windows 11 e no Windows 10 e detetar a arquitetura da CPU do dispositivo, ao utilizar User-Agent Sugestões de Cliente (UA-CH). O formato User-Agent Sugestões de Cliente é utilizado pelos browsers para fornecer informações do agente do utilizador aos sites.
Os sites também podem utilizar as informações do agente de utilizador que são enviadas a partir do browser para detetar informações como:
- A marca do browser.
- O número da versão do browser.
- A plataforma do dispositivo na qual o browser está a ser executado.
Existem duas abordagens para os sites acederem às informações do agente do utilizador:
- User-Agent cadeias (legadas).
- User-Agent Sugestões de Cliente (recomendado).
Para obter detalhes sobre estas duas abordagens, consulte Detetar o Microsoft Edge a partir do seu site.
No Microsoft Edge (e também no Google Chrome), os sites podem diferenciar os utilizadores em Windows 11 e Windows 10 e podem detetar a arquitetura da CPU do dispositivo, através de sugestões de cliente User-Agent (UA-CH). Estas informações podem ser encontradas nos seguintes cabeçalhos de pedido 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 carateres não serão atualizadas para diferenciar entre Windows 11 e Windows 10 ou para diferenciar entre arquiteturas de CPU. Não recomendamos a utilização de cadeias de User-Agent para obter dados do agente de utilizador. Os browsers que não suportam sugestões de cliente User-Agent não poderão diferenciar entre Windows 11 e Windows 10 ou entre arquiteturas de CPU.
Browsers que suportam sugestões de cliente User-Agent
A tabela seguinte mostra que browsers suportam a diferenciação entre Windows 11 e Windows 10 e entre diferentes arquiteturas de CPU.
| Navegador | Suporta a diferenciação através de sugestões de cliente User-Agent? |
|---|---|
| Microsoft Edge | Sim |
| Chrome | Sim |
| Opera | Sim |
| Firefox | Não |
| Internet Explorer 11 | Não |
Código de exemplo para detetar Windows 11
O código seguinte deteta 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 detetar ARM ou x86
Utilize a deteção da arquitetura da CPU para que o seu site transfira automaticamente a versão da sua aplicação criada especificamente para a CPU do utilizador.
A deteção da CPU é particularmente útil para dispositivos baseados em ARM, para que um cliente que utilize um dispositivo ARM transfira automaticamente a versão nativa do ARM de uma aplicação. Isto impede que o utilizador instale inadvertidamente uma aplicação criada para x86 e, em seguida, tenha um desempenho reduzido devido à emulação.
O código seguinte deteta 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");
}
});
Otimizar o desempenho da deteção com Critical-CH
Atualmente, os servidores do site têm de enviar o cabeçalho de Accept-CH resposta para o cliente do browser para pedir campos de entropia superiores não enviados no cabeçalho por predefinição Sec-CH-UA . O diagrama seguinte mostra o browser a enviar cabeçalhos de pedido para o servidor, incluindo user agent: <UA string> e a receber cabeçalhos de resposta, incluindo Accept-CH: sec-ch-ua-platform.
Durante este pedido inicial, o cliente irá registar as Accept-CH preferências e os pedidos subsequentes incluem sec-ch-ua-platform por predefinição.
Para otimizar ainda mais este fluxo, o novo Critical-CH cabeçalho pode ser utilizado para além do Accept-CH cabeçalho para reeditar o cabeçalho do pedido imediatamente, sem a necessidade de recarregar uma página. O diagrama seguinte mostra o browser a enviar cabeçalhos de pedido para o servidor, incluindo user agent: <UA string> e a receber cabeçalhos de resposta, incluindo Accept-CH: sec-ch-ua-platform e Critical-CH: sec-ch-ua-platform. Em seguida, o browser envia cabeçalhos de pedido para o servidor imediatamente.
Pode utilizar o cabeçalho para receber os Critical-CH cabeçalhos de entropia elevado pretendidos com um desempenho otimizado.
Lembre-se de que as preferências e Accept-CH persistem até que os cookies de sessão sejam limpos ou até que Critical-CH um utilizador limpe os dados do site ou os cookies de uma determinada origem. Para obter mais informações sobre Critical-CHo , veja Fiabilidade da Sugestão de Cliente.
Detetar versões específicas do Windows
A definição das versões da plataforma devolvidas pela navigator.userAgentData.getHighEntropyValues API para a "platformVersion" sugestão (e através do Sec-CH-UA-Platform-Version cabeçalho) é especificada no Relatório de Grupo de Comunidade de Sugestões de Cliente do Agente de Utilizador. No Windows 10 e superior, o valor baseia-se na versão Windows.Foundation.UniversalApiContract.
Para detetar versões específicas do Windows, utilize os seguintes valores para platformVersion no User-Agent Sugestões 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 |
| Win11 | 13+ |