Dev Browser
O Dev Browser mostra suas páginas web em tela cheia, no WebView do sistema do seu dispositivo, com sete painéis DevTools (Console, Rede, Armazenamento, Elementos, CSS, Desemp. e Auditoria), 21 perfis de dispositivo, histórico, favoritos e capturas de tela. Funciona igual no Grátis e no Pro.
O que é e como abrir
É uma janela em tela cheia que cobre tudo, inclusive a barra de navegação inferior. Tem uma barra de endereço no alto, sua página embaixo e, quando você pede, um painel DevTools. Há uma única visualização de página: sem abas, sem modo anônimo e sem janelas pop-up. O editor o chama de DevBrowser; na página Editor, o botão dele é descrito como Abrir no navegador.
Formas de abrir
| Onde você está | O que você toca | Endereço que abre |
|---|---|---|
| A página Editor (a das abas de arquivos) | O ícone de globo no cabeçalho. Não tem texto visível: os leitores de tela o chamam de Abrir no navegador. Só aparece com um arquivo HTML, CSS, JavaScript ou TypeScript aberto (não externo) e fica cinza até o servidor local do projeto estar em execução. | http://localhost:<porta>/<caminho do arquivo aberto>, com a porta que o servidor realmente obteve |
| O editor em tela cheia | O ícone de globo (DevBrowser) na barra superior, em qualquer arquivo, exceto Markdown e arquivos externos. | http://localhost:<porta>/<caminho do arquivo no projeto>, com a porta do servidor local que está em execução |
| O menu ou a paleta de comandos do editor | Abrir no DevBrowser, na seção Ferramentas, grupo Executar (ou busque por ele), em qualquer arquivo, exceto Markdown. | http://localhost:<porta>/<caminho do arquivo no projeto>, com a porta do servidor local que está em execução |
O painel Executar do editor, depois de executar um .html | O chip Abrir no DevBrowser | O mesmo endereço no servidor local: o caminho file:// que o runner imprime vira http://localhost:<porta>/<caminho do arquivo no projeto> |
8765 a 8774), então chegam aos seus arquivos mesmo que outra coisa use a 8765. Se ainda não houver servidor local em execução, voltam para a 8765, onde ninguém responde: abra antes o projeto na página Editor, porque é isso que inicia o servidor.O servidor local por trás da pré-visualização
- Ao abrir um projeto na página Editor, um pequeno servidor HTTP para a pasta dele é iniciado sozinho; não há botão para iniciá-lo nem para pará-lo. Ele usa a primeira porta livre de
8765a8774e escuta apenas em127.0.0.1. - É um servidor estático: envia os arquivos do seu projeto, o
index.htmlde uma pasta ou uma listagem de pasta, comCache-Control: no-cache, no-store, must-revalidate, e nunca executa código de servidor. - Toda requisição precisa da credencial do servidor. O Dev Browser a adiciona por você, então suas páginas carregam; qualquer outra coisa que chegue ao servidor recebe
401 Unauthorized. - Seus próprios arquivos carregam sem conexão. O que sua página pedir à Internet (scripts de CDN, fontes, APIs) continua precisando de uma.
Como a janela se comporta
- Não há botão de fechar nem atalho de teclado. Use o gesto ou o botão de voltar do sistema: ele volta primeiro pelo histórico da página e só fecha o Dev Browser quando não resta nenhum.
- Fechá-lo não faz você perder o lugar. Ao abri-lo de novo com o mesmo endereço, a página volta e o console é mantido. Ao abri-lo com outro endereço, o console, a rede, o armazenamento, o DOM, o CSS, as métricas e a auditoria começam vazios; seu perfil de dispositivo, se o DevTools está visível, o histórico e os favoritos são mantidos.
- Girar o dispositivo mantém a aba do DevTools, as caixas de diálogo abertas e a divisão entre página e painel. Na horizontal, a barra de status se oculta; deslize para trazê-la de volta.
- O painel DevTools começa oculto.
Você não pode, e por quê
- Abri-lo pelo painel Ferramentas, pela paleta de comandos global, pelo Início, pelas Configurações ou por um deep link: é uma ferramenta do editor, não um módulo próprio.De propósito
- Ter várias páginas abertas: não há abas, nem modo anônimo, nem janelas pop-up.De propósito
Mapa de telas
Uma linha para cada tela, painel e caixa de diálogo do Dev Browser. Cada uma é explicada nas seções abaixo.
| Tela | Como chegar | O que você pode fazer |
|---|---|---|
| Barra de endereço | Sempre no alto. | Digitar um endereço ou uma pesquisa, recarregar ou parar, abrir o DevTools, abrir o menu. |
| Menu do navegador | Menu do navegador (⋮) na barra de endereço. | Voltar, avançar, localizar, capturas, dispositivo, histórico, favoritos, navegador do sistema, limpar cache. |
| Localizar na página | Menu → Localizar na página. | Buscar o texto da página e pular entre as ocorrências. |
| A página | Abaixo da barra de endereço. | Usar a página, dar zoom com os dedos, escolher arquivos para envio, copiar erros de carregamento. |
| Perfis de dispositivo | Menu → Perfil de dispositivo. | Emular o tamanho e o User-Agent de um celular, tablet ou desktop; girá-lo. |
| Histórico e Favoritos | Menu → Histórico ou Favoritos. | Reabrir páginas, excluir favoritos, limpar o histórico. |
| Adicionar Marcador | Menu → Adicionar favorito. | Salvar a página atual com título e endereço editáveis. |
| Limpar cache | Menu → Limpar cache. | Limpar o cache, os cookies e o armazenamento do site depois de confirmar. |
| Capturas de tela | Menu → Tirar captura ou Captura (página completa). | Salvar um PNG da parte visível ou da página inteira. |
| Painel DevTools | O botão </> (Ferramentas de desenvolvimento). | Mostrar ou ocultar os sete painéis e redimensioná-los. |
| Console | DevTools → Console. | Ler e filtrar as mensagens da página, executar JavaScript. |
| Rede | DevTools → Rede. | Ver as requisições da página com status, tamanho e duração; abrir o detalhe de uma. |
| Armazenamento | DevTools → Armazenamento. | Ver, copiar e excluir localStorage, sessionStorage e cookies. |
| Elementos | DevTools → Elementos. | Ler a árvore DOM, escolher um elemento na página, copiar o seletor dele, destacá-lo. |
| CSS | DevTools → CSS. | Aplicar seu próprio CSS à página e ler as regras da página. |
| Desempenho | DevTools → Desemp. | Ler tempos de carregamento, Core Web Vitals e estatísticas da página. |
| Auditoria | DevTools → Auditoria. | Executar a verificação local de qualidade do PocketCode (47 testes em cinco categorias). |
| Recarga automática | Não há nada para tocar. | A página recarrega quando o agente de IA grava um arquivo que a afeta. |
| Ferramentas do agente de IA | Chat IA. | O agente abre, lê, clica, digita, audita e captura a página aberta. |
Navegar por uma página
A barra de endereço fica sempre no alto e a página ocupa o resto da janela. Todo o resto está no Menu do navegador.
Barra de endereço
Toque no chip do endereço para editá-lo. O chip mostra o endereço sem https://, http://, www. nem a / final, com um cadeado nas páginas HTTPS e um globo nas demais. Uma barra de progresso embaixo dele se enche conforme a página carrega, com uma porcentagem real quando a página a informa.
Você pode
- Digite um endereço ou uma pesquisa em Pesquisar ou digitar URL e toque na tecla Ir do teclado; o X (Cancelar) para de editar.
- Recarregue com Recarregar; enquanto uma página carrega, o mesmo botão vira Parar.
- Abra ou feche o painel DevTools com o botão
</>(Ferramentas de desenvolvimento). Um selo vermelho conta os erros do console e para de contar em 99+. - Abra o Menu do navegador (⋮).
Você não pode, e por quê
- Carregar endereços
file://,content://,data:,javascript:,intent:,mailto:outel:: digitados na barra, viram uma pesquisa no Google.De propósito - Escolher outro buscador: o texto que não é um endereço é sempre pesquisado no Google.De propósito
- Abrir endereços
http://simples da sua rede local (por exemplohttp://192.168.1.20): a política de rede do app só permite HTTP sem criptografia paralocalhost,127.0.0.1e10.0.2.2. Use HTTPS ou um túnel.Precisa de rede
O que acontece com o que você digita
| Você digita | O Dev Browser carrega |
|---|---|
http://… ou https://… | O endereço como foi digitado. |
Qualquer outro esquema (file://, data:, javascript:, mailto:…) | Uma pesquisa no Google pelo texto. |
localhost…, um endereço IPv4 ou host:porta | O mesmo texto com http:// na frente. |
Texto com um ponto, como example.com | O mesmo texto com https:// na frente. |
| Qualquer outra coisa | Uma pesquisa no Google (https://www.google.com/search?q=…). |
Menu do navegador
O botão ⋮ o abre. Estes são os 11 itens dele, nesta ordem.
| Item | O que faz |
|---|---|
| Voltar | Volta no histórico da página. Fica cinza quando não há para onde ir. |
| Avançar | Avança no histórico da página. Fica cinza quando não há para onde ir. |
| Localizar na página | Abre a barra de busca abaixo da barra de endereço. |
| Tirar captura | Salva a parte visível da página como PNG. |
| Captura (página completa) | Salva a página inteira como um único PNG. |
| Perfil de dispositivo | Abre o seletor de dispositivo. |
| Histórico | Abre a lista de páginas que você visitou. |
| Favoritos | Abre seus favoritos. |
| Adicionar favorito | Salva a página atual como favorito. |
| Abrir no navegador do sistema | Abre o endereço atual no seu navegador padrão. Só para http e https; se não for possível abrir, o endereço aparece em um aviso vermelho. |
| Limpar cache | Limpa o cache, os cookies e o armazenamento do site, depois de você confirmar. |
Localizar na página
Abre abaixo da barra de endereço quando você escolhe Localizar na página no menu.
Você pode
- Digite o texto em Localizar na página: ele busca enquanto você digita, marca as ocorrências na página e mostra quantas há.
- Pule para a próxima ou a anterior com Próxima e Anterior; a tecla Pesquisar do teclado também vai para a próxima.
- Feche com Fechar; isso limpa a busca.
Você não pode, e por quê
—
A página
A página roda no WebView do sistema, com JavaScript e armazenamento DOM ativados.
Você pode
- Use a página como de costume: role, toque, digite e dê zoom com os dedos.
- Escolha arquivos para um campo de envio de arquivo com o seletor de arquivos do sistema.
- Veja as caixas
alerteconfirmda própria página. - Leia os erros de carregamento em um aviso vermelho que você pode copiar: a mensagem do próprio WebView,
HTTP <código> <motivo>quando a própria página responde com 400 ou mais, ouWebView render process crashed. Reload the page.Uma falha do processo de renderização da página não fecha o PocketCode.
Você não pode, e por quê
- Seguir links com outros esquemas (
tel:,mailto:,intent:,file:…): são ignorados, sem nenhuma mensagem.De propósito - Carregar conteúdo HTTP dentro de uma página HTTPS (conteúdo misto).De propósito
- Continuar com um certificado TLS inválido, entrar com autenticação HTTP básica ou apresentar um certificado de cliente: a requisição é cancelada. Só as autoridades certificadoras do sistema são confiáveis.De propósito
- Deixar uma página usar a câmera, o microfone ou sua localização: são sempre negados, e o Console mostra um aviso (Warning).De propósito
- Baixar arquivos dentro do app: um link de download abre no navegador do sistema.De propósito
- Abrir janelas pop-up.De propósito
Dispositivo e viewport
Escolha um dispositivo para ver como uma página aparece e se comporta nesse tamanho. Um perfil muda só duas coisas: o tamanho do viewport e o User-Agent que a página recebe.
- A visualização da página usa a largura e a altura do perfil em pixels CSS. Se não couber na tela, ela é reduzida visualmente (os toques também são escalados), como no modo de dispositivo do Chrome.
- O lado maior do viewport nunca passa de 1.600 pixels CSS: perfis maiores mantêm suas proporções dentro desse limite (o Desktop 4K, por exemplo, aparece em 1.600 × 900).
- O User-Agent corresponde à família: Safari no iOS para os perfis de iPhone e iPad, Chrome no Android para os celulares e tablets Android, Chrome no Windows ou no Mac para os desktops.
- A proporção de pixels mostrada ao lado de cada tamanho (como
2.625x) é só texto: não é aplicada à página. - Escolher um perfil recarrega a página quando há uma carregada. Responsivo remove o tamanho fixo, então a página preenche a área, mas mantém um User-Agent de Chrome no Android. Antes de escolher qualquer coisa, não há nenhuma emulação.
Você pode
- Abra Perfil de dispositivo no menu. A caixa de diálogo se chama Perfis de dispositivo e abre no grupo do seu perfil atual.
- Alterne entre Mobile, Tablet e Desktop.
- Escolha Responsivo (Adapta-se ao tamanho do contêiner) ou um dos 21 perfis; o ativo é marcado com um visto (os leitores de tela leem Selecionado).
- Gire 90° um perfil de celular ou de tablet com Girar dispositivo; a caixa de diálogo se fecha.
Você não pode, e por quê
- Girar um perfil de desktop.De propósito
- Passar de 1.600 pixels CSS no lado maior, seja qual for o perfil: a página deixaria de responder bem.De propósito
Os 21 perfis
| Grupo | Perfis (pixels CSS) |
|---|---|
| Mobile (7, giráveis) | iPhone 15 Pro 393×852 · iPhone 15 Pro Max 430×932 · iPhone SE 375×667 · Google Pixel 8 412×915 · Google Pixel 8 Pro 448×998 · Samsung Galaxy S24 360×780 · Samsung Galaxy S24 Ultra 412×915 |
| Tablet (6, giráveis) | iPad Pro 11" 834×1194 · iPad Pro 13" 1024×1366 · iPad Air 820×1180 · iPad Mini 744×1133 · Google Pixel Tablet 1080×1920 · Samsung Galaxy Tab S9 1600×2560 |
| Desktop (8, não giráveis) | Desktop 1080p 1920×1080 · Desktop 1440p (2K) 2560×1440 · Desktop 4K 3840×2160 · Laptop (1366x768) · MacBook Pro 14" 1512×982 · MacBook Pro 16" 1728×1117 · iMac 24" 2240×1260 · Ultrawide (3440x1440) |
O painel DevTools
Toque no botão </> (Ferramentas de desenvolvimento) na barra de endereço para mostrar ou ocultar o painel. Ele começa oculto.
- Na vertical, o painel fica abaixo da página; na horizontal (quando a tela é mais larga do que alta), fica à direita.
- Arraste a alça entre a página e o painel para redimensioná-lo: a página mantém entre 25% e 80% do espaço, 55% por padrão.
- São sete abas. Só a selecionada mostra o nome, para que todas caibam.
- Armazenamento, Elementos, CSS e Desemp. leem a página de novo toda vez que você as seleciona, desde que haja uma página carregada. Rede completa os tempos das requisições quando você a abre. Auditoria só executa quando você toca em Executar auditoria.
- Em Rede, Armazenamento e Elementos, o detalhe de uma linha abre abaixo da lista, dentro do painel, para que a página continue visível. Tem um título, abas opcionais, algumas ações e Fechar, e rola quando é longo.
As sete abas
| Aba | O que mostra |
|---|---|
| Console | O que a página registra no log, mais uma linha para executar JavaScript. |
| Rede | As requisições que a página faz, com status, tamanho e duração. |
| Armazenamento | O localStorage, o sessionStorage e os cookies da página. |
| Elementos | A árvore DOM, com um seletor de elementos. |
| CSS | Um editor de CSS e as regras da própria página. |
| Desemp. | Tempos de carregamento, Core Web Vitals e estatísticas da página. |
| Auditoria | Uma verificação local de qualidade com 47 testes. |
Você não pode, e por quê
- Definir breakpoints, conectar o DevTools remoto do Chrome (
chrome://inspect), usar extensões do navegador, ou inspecionar IndexedDB, Cache Storage, service workers e o manifesto web: o motor é o WebView do sistema, o app não ativa a depuração remota e esses sete painéis são tudo o que existe.Dispositivo
Console
Mostra as mensagens console.* da página com o nível e o texto e, quando a página os fornece, a hora, o arquivo e a linha. Também mostra alguns avisos do app: permissões negadas, um problema de leitura do armazenamento e a recarga automática.
Você pode
- Filtre por nível com os quatro chips (erro, aviso, info, depuração). Cada um mostra sua contagem; toque de novo para remover o filtro. Não há chip para um
console.logsimples: você os vê quando nenhum filtro está ativo. O número à direita é quantas mensagens estão listadas. - Esvazie o console com o ícone de lixeira (Limpar).
- Execute JavaScript no frame principal da página: digite em Avaliar JavaScript… e toque em Executar. O comando e seu resultado (cortado em 2.000 caracteres) são adicionados como mensagens comuns, então os filtros se aplicam a eles.
- Traga de volta comandos anteriores com Comando anterior: ele percorre os comandos em ciclo e nunca repete o mesmo comando duas vezes seguidas.
- Copie uma mensagem mantendo o texto dela pressionado.
- As mensagens novas rolam para a vista só se você já estava no fim da lista.
Você não pode, e por quê
- Ver mais do que as últimas 1.000 mensagens: as mais antigas são descartadas. Navegar não esvazia o console, mas abrir o Dev Browser em outro endereço, sim.De propósito
Rede
Uma lista das requisições que a página faz, cada uma com uma letra para o tipo (D documento, C folha de estilo, J script, I imagem, F fonte ou fetch, X XHR, M mídia, ? outro), o nome do arquivo, o status, o tamanho, a duração e uma barra que compara a duração com a da mais lenta. Um resumo se lê como listed/total · KB · average ms. A lista é apenas observada: cada requisição é anotada quando o WebView a faz, sem bloqueá-la nem alterá-la, e o status, a duração, o tamanho e o tipo real são preenchidos depois, a partir de callbacks de erro e dos dados de Resource Timing da página, lidos quando uma página termina de carregar e quando você abre a aba. As únicas requisições que o próprio app faz são as ao servidor local do projeto, para adicionar a credencial dele.
Você pode
- Filtre por tipo com os chips All, Doc, CSS, JS, XHR (inclui fetch) e Img. Essas palavras ficam sempre em inglês.
- Toque em uma requisição para abrir o detalhe dela abaixo da lista, com três abas: Geral (url, method, status, size, time, duration e error), Cabeçalhos da solicitação (os cabeçalhos que o WebView entrega) e Cabeçalhos da resposta.
- Esvazie a lista com o ícone de lixeira (Limpar).
Você não pode, e por quê
- Ver corpos de requisição ou de resposta, cabeçalhos de resposta ou o tipo MIME: a aba Cabeçalhos da resposta sempre mostra Nenhuma, porque nada preenche esses campos ainda.Ainda não
- Dividir uma requisição em fases de DNS, TLS e espera: cada requisição tem uma só barra, porque o WebView não fornece esses tempos.Dispositivo
- Manter a lista de uma página para a outra: ela é esvaziada a cada navegação da página principal (só o novo documento permanece) e guarda no máximo 1.000 requisições.De propósito
- Contar com um status em toda requisição bem-sucedida: ele vem dos dados de Resource Timing da página, e quando o WebView não o informa a coluna mostra um traço. Os status de erro (400 e acima) sempre aparecem.Dispositivo
Armazenamento
Mostra o localStorage, o sessionStorage e os cookies da página em três seções (LOCAL STORAGE, SESSION STORAGE e COOKIES), cada uma com sua contagem, mais um contador geral n itens. Lê a página quando você abre a aba e com Atualizar. Serve para olhar, copiar e excluir; para criar ou alterar um valor, execute JavaScript no Console.
Você pode
- Toque em uma linha para abrir a chave e o valor completos no detalhe abaixo da lista.
- Toque em Copiar para copiar o valor (Copiado para a área de transferência confirma).
- Toque em Excluir para remover só aquela chave.
- Esvazie uma seção inteira com o ícone vermelho de limpar ao lado do título dela (Limpar).
- Quando a página não tem nada, o painel diz Sem dados de armazenamento e sugere experimentar um site como google.com.
Você não pode, e por quê
- Ver cookies HttpOnly nem os atributos de um cookie (domínio, validade, Secure, SameSite): o painel lê
document.cookie, que os esconde dos scripts da página.De propósito - Excluir um cookie definido para outro caminho ou domínio: excluir um cookie o faz expirar com
path=/.De propósito
Elementos
Uma árvore somente leitura do DOM da página, colorida com o tema do seu código. Cada linha mostra <tag id class …>, o texto dos nós folha e o número de filhos (filho / filhos). Abre com <html> expandido e os filhos dele também, exceto <head>; toque em uma linha para expandi-la ou recolhê-la. O cabeçalho conta os nós. É um instantâneo, lido quando você abre a aba ou toca em Atualizar DOM: não se atualiza sozinho, e aqui você não pode editar nós nem ler estilos computados e eventos.
Você pode
- Toque no ícone de seletor (Selecionar um elemento na página) e depois toque em qualquer coisa da página. O cabeçalho diz Toca num elemento na página; seu próximo toque escolhe o elemento sem ativá-lo (nenhum link é seguido e nenhum formulário é enviado), a árvore abre nesse elemento, destaca-o na página e abre o detalhe dele abaixo da lista. Se o elemento estiver mais fundo do que o instantâneo alcança, escolhe-se o ancestral mais profundo que estiver lá.
- Leia o instantâneo de novo com Atualizar DOM.
- Abra o detalhe de um nó com o ícone (i) dele (Detalhes da entrada): o
<tag>, o seletor CSS e oid, aclass, os atributos e otext. - Toque em Copiar seletor para copiar um seletor posicional como
html > :nth-child(2) > :nth-child(1); ele usa posições, não ids nem classes. - Toque em Destacar na página para contornar o elemento em laranja e rolá-lo até o centro. O contorno fica até você destacar outro nó ou recarregar.
- Quando nada está carregado, o painel diz Sem árvore DOM e Carregue uma página e toque em atualizar.
Você não pode, e por quê
- Ver o DOM inteiro: o instantâneo para na profundidade 10, com 100 filhos por nó (um nó
… +N morerepresenta o resto), 20 atributos por elemento, 500 caracteres de texto e 200 caracteres por valor de atributo. Só contém elementos (sem comentários) e não olha dentro de iframes nem de Shadow DOM.De propósito
CSS
Um pequeno editor que aplica CSS à página aberta e uma lista das regras da própria página. O CSS vive só na página: o painel nunca grava nos arquivos do seu projeto, então copie o que quiser para a sua folha de estilo.
Você pode
- Escreva CSS no editor (Editor) e toque em Aplicar CSS: ele cria, ou atualiza, um elemento
<style>com o idpocket-css-injectna página. - Remova o que você aplicou com Remover (só fica ativo enquanto há algo aplicado).
- O último CSS que você aplicou é aplicado de novo depois de cada carregamento, recarga e navegação, até para outro site, até você tocar em Remover. Ele se perde quando você abre o Dev Browser em outro endereço.
- Passe para Regras (n) para ler as regras da página: o seletor, o número de propriedades, as três primeiras e de onde vem (o endereço da folha de estilo ou
inline). Toque em uma regra para copiar as declarações dela para o editor; aplicá-las então sobrescreve a original em vez de editá-la no lugar. - Quando não há nada para listar, o painel diz Nenhuma regra CSS detectada.
Você não pode, e por quê
- Ver mais de 200 regras, regras dentro de
@media,@supportsou@keyframes, ou folhas de estilo que o navegador não deixa uma página ler: só as regras de nível superior são listadas, e as folhas ilegíveis são puladas sem mensagem.De propósito
Desempenho
Tempos de carregamento e estatísticas da página, lidos da API Performance da página. Toque em Atualizar para lê-los de novo. Não faz profiling de CPU nem de JavaScript e não tem throttling.
Você pode
- Leia os cartões em CORE WEB VITALS: Primeira pintura (FP), Primeira pintura com conteúdo (FCP), DOM carregado (DCL) e Carregamento da página sempre; Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) e Tempo de Bloqueio Total (TBT) quando o valor deles é maior que zero. Cada cartão é colorido como bom, precisa melhorar ou ruim segundo limites fixos (por exemplo, LCP 2.500 e 4.000 ms, CLS 0,1 e 0,25, TBT 200 e 600 ms).
- Leia ESTATÍSTICAS DA PÁGINA: Nós DOM, Recursos e, quando o WebView os expõe, Heap JS e Transferido.
- Leia a CASCATA DE RECURSOS (n): até 50 recursos com o tipo, os últimos 30 caracteres do nome e a duração.
- Toque em Gravar: ele lê as métricas de novo a cada 1,5 segundo até você tocar em Parar. Não grava um trace; é uma atualização ao vivo.
Você não pode, e por quê
- Ver os cartões de LCP, CLS e TBT quando o WebView não os informa: eles só aparecem quando o valor é maior que zero. O heap JS e o tamanho transferido também dependem do que o WebView expõe.Dispositivo
Auditoria
Uma estimativa local, não o Lighthouse. O PocketCode executa o próprio conjunto de 47 verificações como JavaScript dentro da página. Cada verificação recebe uma nota de 0 a 1 segundo limites fixos, e a nota de uma categoria é a média das suas verificações vezes 100. Não há Lighthouse, nem emulação de celular ou de rede, nem trace. Os nomes das verificações, os rótulos dos medidores e as palavras passed, warnings e failed ficam sempre em inglês.
Você pode
- Toque em Executar auditoria (enquanto executa, lê Auditando…). A auditoria só executa quando você toca no botão. Antes da primeira execução, o painel diz Execute uma auditoria para analisar a qualidade da página e Analisa Desempenho, Acessibilidade, Boas Práticas, SEO e PWA.
- Leia cinco medidores de 0 a 100 (Perf, A11y, BP, SEO e PWA; verde a partir de 90, laranja a partir de 50), o endereço auditado e quanto a auditoria levou, em milissegundos.
- Leia o resumo (
N passed,N warnings,N failed) e filtre com os chips Todas (n), passed, warnings e failed. Uma verificação passa com 0,9 ou mais, é um aviso de 0,5 até menos de 0,9 e falha abaixo de 0,5. - Recolha as categorias e abra uma verificação para ler o detalhe dela (até 8 linhas).
- Toque de novo no botão, agora na barra superior, para medir outra vez.
Você não pode, e por quê
- Obter notas comparáveis às do Lighthouse ou do PageSpeed Insights: são estimativas do próprio PocketCode, e algumas verificações olham só uma amostra da página (a profundidade do DOM lê os primeiros 150 elementos, o tamanho da fonte 100 e as áreas de toque 50).De propósito
- Inspecionar um service worker: a verificação só detecta se algum controla a página.De propósito
As 47 verificações
| Categoria | Verificações |
|---|---|
| Desempenho (12) | First Contentful Paint · Largest Contentful Paint · Page Load Time · Time to First Byte · DOM Size · Maximum DOM Depth · Render-Blocking Resources · Minified JavaScript · Properly Sized Images · Resource Count · Total Transfer Size · Long Resource Loads |
| Acessibilidade (11) | Image Alt Text · HTML lang Attribute · Document Title · Button Accessible Names · Link Accessible Names · Form Input Labels · Heading Hierarchy · Valid ARIA Roles · Tab Index Values · Landmark Regions · Valid List Structure |
| Boas práticas (9) | HTTPS · Viewport Meta Tag · Document Type · Character Encoding · No Deprecated HTML · Safe Cross-Origin Links · Responsive Images · Image Aspect Ratio · No Mixed Content |
| SEO (9) | Page Title · Meta Description · H1 Heading · Canonical URL · Structured Data · Robots Directives · Crawlable Links · Legible Font Sizes · Tap Target Size |
| PWA (6) | Service Worker · Web App Manifest · HTTPS Required · Theme Color · Apple Touch Icon · App Icons |
Histórico, favoritos e dados do site
O histórico, os favoritos e a caixa de diálogo do cache começam todos no Menu do navegador.
Histórico e Favoritos
Histórico e Favoritos abrem a mesma caixa de diálogo, em uma aba ou na outra. O título dela é o nome da aba ativa, e ela tem um botão Fechar. O histórico guarda as últimas 100 páginas, da mais nova para a mais antiga; uma página que você recarrega em sequência só atualiza o título. O app guarda até 200 favoritos e nunca repete um endereço. Os dois ficam no dispositivo entre as sessões.
Você pode
- Alterne entre as abas Histórico e Favoritos.
- Toque em uma entrada para abrir o endereço dela (segue as mesmas regras da barra de endereço) e fechar a caixa de diálogo.
- Exclua um favorito com o ícone de lixeira (Excluir).
- Exclua o histórico inteiro com o ícone vermelho de vassoura (Limpar), mostrado só na aba do histórico quando há entradas. Não pede confirmação.
- Quando uma lista está vazia, ela diz Ainda não há histórico. Navegue por algumas páginas. ou Ainda não há favoritos. Adicione um pelo menu.
Você não pode, e por quê
- Guardar mais de 100 entradas de histórico ou 200 favoritos.De propósito
Adicionar Marcador
A caixa de diálogo abre em Adicionar favorito no menu.
Você pode
- Edite Título, preenchido com o título da página (ou o endereço dela), e URL, preenchida com o endereço atual.
- Toque em Salvar, que fica desativado enquanto um dos campos está vazio, ou em Cancelar. Favorito adicionado aparece mesmo que o endereço já estivesse salvo; ele não é salvo duas vezes.
Você não pode, e por quê
—
Limpar cache
A caixa de diálogo pergunta: Isso limpará todos os dados em cache, incluindo cookies e armazenamento. Continuar?
Você pode
- Toque em Confirmar ou Cancelar.
- Ao confirmar, ele limpa o cache HTTP do WebView; o
localStorage, osessionStorage, os cookies visíveis ao JavaScript e os bancos IndexedDB do site da página aberta; e todos os cookies do WebView do app, não só os deste site. Depois o painel Armazenamento é atualizado e aparece Dados do site limpos. - Ele mantém seu histórico de navegação: nem o histórico de voltar e avançar da página nem a lista Histórico são limpos.
Você não pode, e por quê
- Limpar os dados de um só site: a limpeza de cookies abrange todos os sites que o WebView do app conhece.De propósito
Capturas de tela
Duas ações no menu: Tirar captura e Captura (página completa). As duas salvam um PNG chamado screenshot_<milissegundos>.png em Pictures/PocketCode/Screenshots, então ele aparece na sua galeria, e respondem Captura salva (a de página completa acrescenta o tamanho, como (1080x4200)).
Você pode
- Tirar captura salva o que a visualização da página mostra. Se o lado maior passar de 4.096 px, ela é reduzida proporcionalmente.
- Captura (página completa) primeiro rola a página para baixo em até 12 saltos de cerca de 90% da tela, para que o conteúdo de carregamento lento (lazy-load) apareça; depois desenha o documento inteiro, apara o vazio no fim e leva você de volta ao ponto em que estava. Captura com densidade de até 2×.
Você não pode, e por quê
- Capturar uma página muito alta sem aviso: o canvas da captura de página completa tem 1,45 vez a altura medida e é limitado a 20.000 px de altura e 64 MB. Quando esse tamanho passa do limite, o aviso termina com
[truncada em 5 blocos], mesmo que a página inteira caiba. Apesar do texto, o corte é esse limite de altura e de memória, não uma contagem de blocos.Dispositivo - Salvar na galeria no Android 9, a versão mínima: lá o PNG vai para a pasta do próprio app (
…/files/Pictures/PocketCode/Screenshots). A partir do Android 10, vai para a galeria.Dispositivo
Recarga automática
Quando o agente de IA grava um arquivo no seu projeto, a página recarrega sozinha se a página aberta for esse arquivo, ou o index.html da pasta dele, ou se a página aberta estiver em localhost, 127.0.0.1 ou [::1] e o arquivo for estático (.html, .htm, .css, .js, .mjs, .json, .svg, .png, .jpg, .jpeg, .gif, .webp, .woff, .woff2). O Console registra uma linha que começa com Live Reload: e termina com actualizado (esse texto é sempre em espanhol).
Você pode
- Peça ao agente de IA no Chat IA que edite sua página enquanto o Dev Browser está aberto nela e veja a página recarregar.
- Recarregue à mão a qualquer momento com Recarregar.
Você não pode, e por quê
- Fazer a página recarregar quando você mesmo salva um arquivo no editor, ou ligar ou desligar a recarga automática: só as gravações do agente de IA a acionam.Ainda não
O agente de IA e o Dev Browser
O agente de IA no Chat IA tem 19 ferramentas que controlam o Dev Browser. Elas só funcionam enquanto o Dev Browser está aberto: do contrário, respondem Dev Browser is not open. Ask the user to open the Dev Browser, then call this tool again.
| Grupo | Ferramentas |
|---|---|
| Abrir páginas (2) | browser_navigate (http, https ou about; espera a página começar e terminar de carregar, até 5 s e 10 s) · browser_nav_action (BACK, FORWARD ou RELOAD) |
| Ler a página (7) | browser_get_page_info · browser_get_elements · browser_get_console_logs · browser_get_network · browser_get_storage (lê a página ao vivo, também com a aba fechada) · browser_get_performance · browser_find_text |
| Agir na página (4) | browser_click_element · browser_input_text · browser_scroll · browser_wait_for (um seletor, um texto ou rede ociosa; de 500 a 15.000 ms) |
| Auditoria e captura (2) | browser_run_lighthouse_audit (a mesma verificação local da Auditoria) · browser_screenshot |
| Dispositivo, armazenamento e script (4) | browser_set_device · browser_clear_storage · browser_set_cookie · browser_evaluate_js |
Você pode
- Peça ao agente que abra sua página, leia o console e as requisições dela, clique e digite para percorrer um fluxo, tire uma captura de tela ou execute a auditoria.
- Feche o Dev Browser para impedir que o agente acesse a página.
Você não pode, e por quê
- Usar as ferramentas com o Dev Browser fechado.De propósito
- Executar um script com mais de 32.768 caracteres ou por mais de 15 segundos, ou usar um seletor com mais de 512 caracteres.De propósito
- Definir um cookie HttpOnly:
browser_set_cookiegrava por meio dedocument.cookie.De propósito
Grátis e Pro
Privacidade e segurança
O que o Dev Browser guarda, onde, e o que ele consegue acessar.
- O histórico e os favoritos ficam no seu dispositivo, no armazenamento privado do app (
SharedPreferences, um texto JSON, sem criptografia). Nenhuma parte do código de sincronização do app os lê, então o Cloud Sync não os leva. O histórico guarda os endereços completos. - Sair da conta apaga tudo isso. Sair do PocketCode limpa os cookies, o armazenamento e o cache do WebView, junto com o histórico e os favoritos do Dev Browser, porque o WebView é compartilhado por todas as contas.
- É um único navegador para o app inteiro. O WebView compartilha os cookies dele com o resto do app, então um site em que você entra aqui continua com a sessão iniciada até você sair do PocketCode ou usar Limpar cache, que remove todos os cookies do WebView.
- Permissões. Os pedidos de câmera, microfone e localização de uma página são sempre negados.
- Sem arquivos. A visualização da página não pode ler arquivos do dispositivo, o conteúdo misto é bloqueado e a Navegação segura do Google (Safe Browsing) está ativada.
- O servidor local escuta apenas em
127.0.0.1e recusa qualquer requisição sem a credencial dele; o próprio Dev Browser adiciona a credencial. - O que ele adiciona a uma página. Observadores de desempenho (
window.__pcPerf), o CSS que você aplica (um elemento<style>com o idpocket-css-inject), o frame do seletor de elementos e uma classe de destaque. Não registra nenhuma ponteaddJavascriptInterface, então as páginas não têm acesso a objetos do app. - O agente de IA pode ler a página aberta e agir nela enquanto o Dev Browser está aberto: executar JavaScript, clicar, digitar, limpar o armazenamento e definir cookies.
Limitações
Os principais limites do Dev Browser, cada um com seu motivo. As seções acima listam o resto.
- O motor é o WebView do sistema do seu dispositivo, então a versão dele, e dados como
performance.memoryou o status das respostas bem-sucedidas, dependem dele. Não há extensões nem depuração remota.Dispositivo - As páginas da Internet precisam de conexão; só o servidor local do projeto funciona sem uma.Precisa de rede
- HTTP simples só é permitido para
localhost,127.0.0.1e10.0.2.2. Para um servidor da sua rede local, use HTTPS ou um túnel.Precisa de rede - Certificados TLS inválidos, autenticação HTTP básica e certificados de cliente são recusados, e só as autoridades certificadoras do sistema são confiáveis.De propósito
- Um endereço digitado na barra deve ser
httpouhttps; qualquer outra coisa vira uma pesquisa no Google, e o buscador não pode ser trocado.De propósito - Há uma única visualização de página: sem abas, sem modo anônimo, sem janelas pop-up e sem downloads dentro do app.De propósito
- O conteúdo misto, a câmera, o microfone e a localização são bloqueados.De propósito
- Não há botão de fechar nem atalho de teclado: você sai com o gesto de voltar do sistema, depois de esgotar o histórico da página.De propósito
- Um perfil de dispositivo muda o tamanho do viewport, limitado a 1.600 pixels CSS no lado maior, e o User-Agent. Nada mais é emulado.De propósito
- O painel Rede não mostra corpos, cabeçalhos de resposta nem tipos MIME, e a aba Cabeçalhos da resposta sempre diz Nenhuma.Ainda não
- A Auditoria é a estimativa local própria do PocketCode, com 47 verificações, e não o Lighthouse, e os textos dela ficam sempre em inglês.De propósito
- A recarga automática só reage a arquivos gravados pelo agente de IA, não ao que você salva à mão.Ainda não
- Sem nenhum servidor local em execução, o ícone de globo do editor em tela cheia, Abrir no DevBrowser e o chip do painel Executar voltam para a porta
8765, onde ninguém responde: o espaço de trabalho do projeto inicia o servidor quando você abre o projeto na página Editor.Ainda não - As capturas de tela são limitadas pela memória: 4.096 px para a parte visível, 20.000 px e 64 MB para uma página inteira, e no Android 9 vão para a pasta do próprio app.Dispositivo
Problemas comuns
As mensagens abaixo são as reais que o app mostra. Quando uma mensagem vem do servidor local ou das ferramentas do agente de IA, o idioma dela é fixo.
O ícone de globo do cabeçalho do Editor está cinza ou não aparece
Ele só aparece quando o arquivo aberto é HTML, CSS, JavaScript ou TypeScript (e não externo), e fica cinza até o servidor local do projeto estar em execução. O servidor inicia sozinho quando a página Editor abre um projeto, então dê um instante a ele.
Minha página não carrega pelo ícone de globo do editor, por Abrir no DevBrowser nem pelo chip do painel Executar
Eles usam a porta do servidor local que está em execução (de 8765 a 8774). Se ainda não houver nenhum, voltam para http://localhost:8765/…, onde ninguém responde. Abra o projeto na página Editor, que inicia o servidor, espere um instante e tente de novo.
A página diz 404 e Archivo no encontrado: <caminho>
Essa página vem do servidor local do projeto, e o texto dela é sempre em espanhol. Não há arquivo nesse caminho no projeto que ele serve: confira o caminho e o nome do arquivo.
401 Unauthorized
O servidor local responde isso a qualquer requisição que chegue sem a credencial dele. O Dev Browser adiciona a credencial sozinho, então você só vê isso se o mesmo endereço for aberto em outro app ou navegador.
403 Forbidden: Acceso denegado
O endereço aponta para fora da pasta do projeto (por exemplo, com ../), e o servidor o recusa. Mantenha o caminho dentro do projeto.
Um aviso vermelho que diz HTTP <código> <motivo>
O documento principal da página respondeu com um status de erro, 400 ou acima (por exemplo, HTTP 404 Not Found). Imagens, scripts e chamadas de API que falham não geram aviso; procure-as em Rede, onde um status de erro aparece em vermelho.
WebView render process crashed. Reload the page.
O processo de renderização da página parou. O PocketCode continua aberto: toque em Recarregar.
Um aviso vermelho com outra mensagem, e a página não carrega
É o texto de erro do próprio WebView para o documento principal, por exemplo quando o servidor não pode ser alcançado ou o nome não pode ser resolvido. Confira o endereço e sua conexão. Lembre-se de que HTTP simples para um endereço da rede local é bloqueado (veja Limitações).
Não foi possível capturar a tela
Ainda não há visualização de página para capturar. Espere uma página aparecer e tente de novo.
Falha ao capturar a tela
Não foi possível desenhar a página em uma imagem, por exemplo porque uma página muito grande esgotou a memória. Tente Tirar captura (a parte visível) em vez da página completa.
Falha ao capturar o bitmap do WebView
Não foi possível transformar a parte visível em imagem: a visualização da página ainda não tinha tamanho, ou a memória acabou. Tente de novo quando a página estiver na tela.
Falha ao salvar a captura
A imagem foi desenhada, mas não foi possível gravar o PNG na galeria (ou na pasta do app no Android 9). Confira se o dispositivo tem espaço livre e tente de novo.
O aviso depois de uma captura de página completa termina com truncada em 5 blocos
O canvas da captura (a altura da página mais uma margem de segurança de 45 %) passou do limite de 20.000 px de altura e 64 MB. Com uma página muito alta, a imagem para onde o limite acabou; com uma mais curta, ela pode já conter a página inteira, então olhe o final. Apesar do texto, o corte não é uma contagem de blocos. Se a página for muito alta, role até a parte de que você precisa e use Tirar captura.
Não foi possível limpar os dados do site
Ainda não há visualização de página. Abra uma página primeiro e use Limpar cache de novo.
Sem atividade de rede
A lista é esvaziada a cada navegação da página principal e só guarda as requisições feitas desde então. Recarregue a página com a aba Rede aberta para vê-las de novo.
Sem dados de armazenamento
A página não tem localStorage, sessionStorage nem cookies (os cookies HttpOnly não aparecem). O painel sugere experimentar um site como google.com.
Sem árvore DOM e Carregue uma página e toque em atualizar
Elementos mostra um instantâneo, lido quando você abre a aba ou toca em Atualizar DOM. Carregue uma página e depois atualize.
Nenhuma regra CSS detectada
O painel lista as regras de nível superior das folhas de estilo que a página deixa ele ler. Uma página cujas regras estão todas dentro de @media, ou cujas folhas vêm de outro site, pode não mostrar nenhuma.
Falha na auditoria: Audit script returned no data
O script de auditoria não retornou nada, por exemplo quando nenhuma página está carregada. Carregue uma página, espere ela terminar e toque em Executar auditoria de novo.
O console mostra Permission denied by Dev Browser: <recurso> ou Geolocation denied by Dev Browser for origin: <origem>
A página pediu a câmera, o microfone ou sua localização. O Dev Browser sempre os nega e deixa um aviso (Warning) para você saber por que o pedido falhou.
A página não recarrega quando salvo no editor
A recarga automática só acontece quando o agente de IA grava o arquivo. Salvar à mão não a aciona: toque em Recarregar.
Dev Browser is not open. Ask the user to open the Dev Browser, then call this tool again.
É o que uma ferramenta browser_* do agente de IA responde quando o Dev Browser está fechado. Abra o Dev Browser na sua página e peça ao agente que tente de novo.
Próximos passos