Um perfil Android roda em um computador comum e recebe o veredito Trustworthy do iphey. A lição, aprendida da forma mais cara, foi não atribuir o hardware do telefone manualmente. Resta uma limitação da janela desktop, mostrada de forma aberta.
Crie um perfil móvel com a opção:
O motor seleciona uma identidade móvel coerente, incluindo modelo, chipset, tela e memória. O modelo é informado em uaData.model, que é o valor lido pelos detectores. A suíte marca 100 de 100 e o iphey retorna Trustworthy; não é necessário ter um telefone físico.
A primeira versão atribuía o hardware do telefone usando nossa própria lista de modelos. A lista combinou um Pixel 7 com chipset de Redmi. Um chipset incorreto bastou para o iphey retornar Unreliable: os detectores conhecem as combinações reais de modelo e chipset melhor que qualquer catálogo mantido manualmente.
Três perfis móveis criados em sequência em uma máquina limpa:
| Superfície | Resultado |
|---|---|
| Fontes exclusivas do Windows | nenhuma exposta; as treze verificações passaram |
| Placa de vídeo | diferente em cada perfil |
| Tela informada | diferente em cada perfil |
| Canvas | diferente em cada perfil |
| Número de processadores lógicos | oito em todos os perfis, como nos telefones de referência |
As fontes são a verificação mais clara. Se uma página recebesse Calibri ou Segoe UI de um perfil que se apresenta como Pixel, a contradição seria imediata: essas fontes não vêm com Android. Testamos treze fontes instaladas apenas pelo Windows ou Microsoft Office, e o perfil não expôs nenhuma delas.
O viewport de layout do perfil móvel é mais largo que a tela informada. O motor altera screen e outerWidth, mas o navegador ainda roda em uma janela real do sistema desktop. O perfil informa 360×800 enquanto o viewport de layout fica em 500×731. Testamos as seguintes alternativas:
| Alternativa | Largura do viewport de layout |
|---|---|
| sem ajuste | 500 |
| janela 412×915 | 500 |
| janela 300×600 | 500 |
| escala de renderização 1,27 | 510 |
| modo headless | 478 |
O limite é a largura mínima da janela do Chrome no desktop, cerca de 500 pixels CSS. Telefones não usam um viewport tão largo, portanto a diferença não pode ser eliminada enquanto o navegador rodar em uma janela desktop. Falsificar innerWidth sem alterar o layout real não funciona. A primeira media query revelaria a largura verdadeira e criaria dois valores contraditórios em vez de um.
O que foi possível melhorar: depois da abertura, o NimbusX ajusta a janela à altura informada pela página e o CreepJS deixou de destacar a seção Screen. A diferença de largura que permanece aparece no painel: a célula WIN fica apagada e a explicação aparece abaixo da tabela. Não faria sentido esconder, pois o site vê a diferença antes do usuário.
Coerência importa mais que volume · Como os detectores relacionam perfis