createImageBitmap indisponível? Solucionar por plataforma e ambiente
Sintomas que você vê
O Any3D exibe a mensagem "O navegador atual não suporta createImageBitmap". Este é um dos três componentes essenciais da rota do Worker, usado para decodificar pixels de imagens de forma eficiente em segundo plano. Sua ausência impede que processamentos como compressão de texturas e conversão de imagens para modelos completem a rota total do Worker, tornando arquivos grandes mais propensos a travamentos.
Causas Comuns
| Causa | Cenário Típico |
|---|---|
| Navegador/WebView desatualizado | WebView antiga do Android, páginas embutidas em aplicativos |
| Contexto não seguro | Sites HTTP (exceto localhost), file:// |
| Recursos cross-origin mal configurados | CDN/CORS corporativos causando falhas na decodificação de imagens (se manifestando como anomalias de funcionalidade) |
| Limitações de memória/abas | Dispositivos móveis com pouca memória, políticas corporativas de "uma aba apenas" |
| Interferência de extensões | Plugins de privacidade que modificam o comportamento da API Image |
Solução por Plataforma
Windows / macOS (Desktop)
- Use a versão estável mais recente do Chrome / Edge / Firefox / Safari.
- O Any3D deve ser acessado exclusivamente via HTTPS.
- Tempo de uso do ecrã no macOS e Segurança Familiar no Windows, se restringirem downloads ou acesso a mídias, podem afetar a decodificação de imagens grandes — teste com uma conta de administrador.
- Área de Trabalho Remota (RDP): Texturas de resolução muito alta podem falhar na decodificação em ambientes com GPU fraca; primeiro teste com imagens pequenas.
Linux
- Atualize o Chrome/Firefox; em ambientes Wayland, se a decodificação por GPU estiver anormal, tente comparar com uma sessão X11 (pouco comum).
iOS / iPadOS
- A partir do Safari 14+, o suporte é melhor; mantenha o sistema iOS atualizado.
- O navegador embutido no WeChat frequentemente tem um kernel desatualizado → abra no Safari.
- Proxy Privado do iCloud / Restrição de Conteúdo Adulto normalmente não bloqueia createImageBitmap, mas pode bloquear hospedagens de imagens cross-origin — certifique-se de que as texturas do modelo sejam de mesma origem (same-origin) ou acessíveis.
Android
- Atualize o Chrome e o Android System WebView (Configurações → Aplicações → Mostrar aplicações do sistema).
- Navegadores nacionais em modo de compatibilidade → mude para o Chrome.
- Bem-Estar Digital / Family Link, quando restringe atividades em segundo plano, não afeta diretamente a API, mas pode bloquear o upload de arquivos grandes.
Rede, VPN e Intranet Corporativa
| Cenário | Descrição |
|---|---|
| VPN corporativa | Se as texturas do modelo trafegam via CDN da intranet, erros de CORS ou certificados podem causar falhas na decodificação — haverá erros de rede no Console |
| Proxy transparente | Se substituir ou corromper as respostas de imagens, createImageBitmap pode rejeitar |
| Intranet apenas HTTP | Contexto não seguro, a API pode estar indisponível ou com comportamento restrito |
| Zero Trust / Inspeção SSL | Certificados autoassinados precisam ser importados como confiáveis; caso contrário, o carregamento de recursos falha |
Sugestão: Desconecte a VPN, troque para um hotspot e teste com um modelo geométrico puro sem texturas externas — se o modelo puro funcionar mas o com texturas falhar, investigue primeiro a rede/CORS.
Políticas Corporativas e Controles Parentais
- Intune App Protection pode restringir "Salvar como/Download", afetando indiretamente o fluxo de seleção de imagens pelo usuário, mas a API em si ainda deve existir — teste no Console para diferenciar.
- Supervisão de iPads na escola: Proibir o "App Ficheiros" não afeta a API, mas influencia o método de upload; utilize um canal de upload suportado.
- Controles Parentais de DNS no Roteador: Se bloquear o domínio do Any3D, todo o site fica indisponível, não apenas o createImageBitmap.
Correção Passo a Passo (Geral)
- HTTPS + navegador atualizado + reinicialização.
- Janela anônima para isolar extensões.
- Abrir no navegador do sistema, não no WebView do aplicativo.
- Verifique simultaneamente se Web Worker e OffscreenCanvas também estão com alertas.
Auto-Teste Rápido
typeof createImageBitmap !== "undefined"
Avançado (requer HTTPS e uma URL de imagem acessível):
fetch("https://example.com/favicon.ico")
.then((r) => r.blob())
.then((b) => createImageBitmap(b))
.then(() => console.log("ok"))
.catch(console.error);
Resumo
Problemas com createImageBitmap geralmente são causados por WebView desatualizada, ausência de HTTPS, ou VPN/intranet impedindo o carregamento de recursos. Atualize a WebView por plataforma, teste trocando a rede e isole extensões; a rota de processamento de imagens do Worker normalmente será restaurada.