Dev Browser
El Dev Browser muestra tus páginas web a pantalla completa, sobre el WebView del sistema de tu dispositivo, con siete paneles DevTools (Consola, Red, Almacenamiento, Elementos, CSS, Rend. y Auditoría), 21 perfiles de dispositivo, historial, marcadores y capturas. Funciona igual en Free y en Pro.
Qué es y cómo se abre
Es una ventana a pantalla completa que lo tapa todo, también la barra de navegación inferior. Tiene una barra de direcciones arriba, tu página debajo y, cuando lo pides, un panel DevTools. Hay una sola vista de página: sin pestañas, sin modo privado y sin ventanas emergentes. El editor lo llama DevBrowser; en la página Editor su botón se describe como Abrir en el navegador.
Formas de abrirlo
| Dónde estás | Qué pulsas | Dirección que abre |
|---|---|---|
| La página Editor (la de las pestañas de ficheros) | El icono de globo de la cabecera. No tiene texto visible: los lectores de pantalla lo llaman Abrir en el navegador. Solo aparece con un fichero HTML, CSS, JavaScript o TypeScript abierto (no externo) y se queda en gris hasta que el servidor local del proyecto está en marcha. | http://localhost:<puerto>/<ruta del fichero abierto>, con el puerto que el servidor ha conseguido de verdad |
| El editor a pantalla completa | El icono de globo (DevBrowser) de la barra superior, con cualquier fichero salvo Markdown y los externos. | http://localhost:<puerto>/<ruta del fichero en el proyecto>, con el puerto del servidor local que está en marcha |
| El menú o la paleta de comandos del editor | Abrir en DevBrowser, en la sección Herramientas, grupo Ejecutar (o búscalo), con cualquier fichero salvo Markdown. | http://localhost:<puerto>/<ruta del fichero en el proyecto>, con el puerto del servidor local que está en marcha |
El panel Ejecutar del editor, tras ejecutar un fichero .html | El chip Abrir en DevBrowser | La misma dirección en el servidor local: la ruta file:// que imprime el runner se convierte en http://localhost:<puerto>/<ruta del fichero en el proyecto> |
8765 a 8774), así que llegan a tus ficheros aunque otra cosa tenga el 8765. Si todavía no hay ningún servidor local en marcha, vuelven al 8765, donde no contesta nadie: abre antes el proyecto en la página Editor, porque eso es lo que arranca el servidor.El servidor local que hay detrás de la vista previa
- Al abrir un proyecto en la página Editor se arranca solo un pequeño servidor HTTP para su carpeta; no hay botón para arrancarlo ni pararlo. Toma el primer puerto libre de
8765a8774y escucha solo en127.0.0.1. - Es un servidor estático: sirve los ficheros de tu proyecto, el
index.htmlde una carpeta o un listado de carpeta, conCache-Control: no-cache, no-store, must-revalidate, y nunca ejecuta código de servidor. - Cada petición necesita la credencial del servidor. El Dev Browser la añade por ti, así que tus páginas cargan; cualquier otra cosa que llegue al servidor recibe
401 Unauthorized. - Tus propios ficheros cargan sin conexión. Lo que tu página pida a Internet (scripts de CDN, fuentes, APIs) sigue necesitándola.
Cómo se comporta la ventana
- No hay botón de cerrar ni atajos de teclado. Usa el gesto o el botón atrás del sistema: primero retrocede por el historial de la página y solo cierra el Dev Browser cuando no queda ninguno.
- Cerrarlo no te hace perder el sitio. Si lo abres otra vez con la misma dirección, vuelve la página y se conserva la consola. Si lo abres con otra dirección, empiezan vacíos la consola, la red, el almacenamiento, el DOM, el CSS, las métricas y la auditoría; se conservan el perfil de dispositivo, si DevTools está visible, el historial y los marcadores.
- Girar el dispositivo mantiene la pestaña de DevTools, los diálogos abiertos y el reparto entre página y panel. En horizontal la barra de estado se oculta; desliza para recuperarla.
- El panel DevTools empieza oculto.
No puedes, y por qué
- Abrirlo desde la hoja Herramientas, la paleta de comandos global, Inicio, Ajustes o un enlace profundo: es una herramienta del editor, no un módulo propio.A propósito
- Tener varias páginas abiertas: no hay pestañas, ni modo privado, ni ventanas emergentes.A propósito
Mapa de pantallas
Una fila por cada pantalla, panel y diálogo del Dev Browser. Cada uno se explica en las secciones de abajo.
| Pantalla | Cómo llegas | Qué puedes hacer |
|---|---|---|
| Barra de direcciones | Siempre arriba. | Escribir una dirección o una búsqueda, recargar o detener, abrir DevTools, abrir el menú. |
| Menú del navegador | Menú del navegador (⋮) en la barra de direcciones. | Atrás, adelante, buscar, capturas, dispositivo, historial, marcadores, navegador del sistema, limpiar caché. |
| Buscar en la página | Menú → Buscar en la página. | Buscar texto en la página y saltar entre coincidencias. |
| La página | Bajo la barra de direcciones. | Usar la página, hacer zoom con los dedos, elegir ficheros para subir, copiar errores de carga. |
| Perfiles de dispositivo | Menú → Perfil de dispositivo. | Emular el tamaño y el User-Agent de un móvil, una tablet o un escritorio; rotarlo. |
| Historial y Marcadores | Menú → Historial o Marcadores. | Reabrir páginas, borrar marcadores, borrar el historial. |
| Añadir Marcador | Menú → Agregar marcador. | Guardar la página actual con título y dirección editables. |
| Limpiar caché | Menú → Limpiar caché. | Borrar la caché, las cookies y el almacenamiento del sitio tras confirmar. |
| Capturas | Menú → Tomar captura o Captura (página completa). | Guardar un PNG de la parte visible o de la página entera. |
| Panel DevTools | El botón </> (Herramientas de desarrollo). | Mostrar u ocultar los siete paneles y cambiarles el tamaño. |
| Consola | DevTools → Consola. | Leer y filtrar los mensajes de la página, ejecutar JavaScript. |
| Red | DevTools → Red. | Ver las peticiones de la página con estado, tamaño y duración; abrir el detalle de una. |
| Almacenamiento | DevTools → Almacenamiento. | Ver, copiar y borrar localStorage, sessionStorage y cookies. |
| Elementos | DevTools → Elementos. | Leer el árbol DOM, elegir un elemento en la página, copiar su selector, resaltarlo. |
| CSS | DevTools → CSS. | Aplicar tu propio CSS a la página y leer las reglas de la página. |
| Rendimiento | DevTools → Rend. | Leer tiempos de carga, métricas web esenciales y estadísticas de la página. |
| Auditoría | DevTools → Auditoría. | Lanzar la comprobación local de calidad de PocketCode (47 pruebas en cinco categorías). |
| Recarga automática | No hay nada que pulsar. | La página se recarga cuando el agente de IA escribe un fichero que la afecta. |
| Herramientas del agente de IA | Chat IA. | El agente abre, lee, pulsa, escribe, audita y captura la página abierta. |
Navegar por una página
La barra de direcciones está siempre arriba y la página ocupa el resto de la ventana. Todo lo demás está en el Menú del navegador.
Barra de direcciones
Toca el chip de la dirección para editarla. El chip muestra la dirección sin https://, http://, www. ni la / final, con un candado en las páginas HTTPS y un globo en el resto. Debajo, una barra de progreso se llena mientras carga la página, con un porcentaje real cuando la página lo informa.
Puedes
- Escribe una dirección o una búsqueda en Buscar o escribir URL y pulsa la tecla Ir del teclado; la X (Cancelar) deja de editar.
- Recarga con Recargar; mientras una página carga, el mismo botón pasa a ser Detener.
- Abre o cierra el panel DevTools con el botón
</>(Herramientas de desarrollo). Una insignia roja cuenta los errores de la consola y se detiene en 99+. - Abre el Menú del navegador (⋮).
No puedes, y por qué
- Cargar direcciones
file://,content://,data:,javascript:,intent:,mailto:otel:: escritas en la barra, se convierten en una búsqueda en Google.A propósito - Elegir otro buscador: el texto que no es una dirección se busca siempre en Google.A propósito
- Abrir direcciones
http://sin cifrar de tu red local (por ejemplohttp://192.168.1.20): la política de red de la app solo permite HTTP sin cifrar hacialocalhost,127.0.0.1y10.0.2.2. Usa HTTPS o un túnel.Requiere red
Qué pasa con lo que escribes
| Escribes | El Dev Browser carga |
|---|---|
http://… o https://… | La dirección tal cual. |
Cualquier otro esquema (file://, data:, javascript:, mailto:…) | Una búsqueda en Google del texto. |
localhost…, una dirección IPv4 o host:puerto | El mismo texto con http:// delante. |
Texto con un punto, como example.com | El mismo texto con https:// delante. |
| Cualquier otra cosa | Una búsqueda en Google (https://www.google.com/search?q=…). |
Menú del navegador
El botón ⋮ lo abre. Estos son sus 11 elementos, en este orden.
| Elemento | Qué hace |
|---|---|
| Atrás | Retrocede en el historial de la página. En gris si no hay adónde ir. |
| Adelante | Avanza en el historial de la página. En gris si no hay adónde ir. |
| Buscar en la página | Abre la barra de búsqueda bajo la barra de direcciones. |
| Tomar captura | Guarda la parte visible de la página como PNG. |
| Captura (página completa) | Guarda la página entera como un PNG. |
| Perfil de dispositivo | Abre el selector de dispositivo. |
| Historial | Abre la lista de páginas que visitaste. |
| Marcadores | Abre tus marcadores. |
| Agregar marcador | Guarda la página actual como marcador. |
| Abrir en el navegador del sistema | Abre la dirección actual en tu navegador predeterminado. Solo para http y https; si no se puede abrir, la dirección sale en un aviso rojo. |
| Limpiar caché | Borra la caché, las cookies y el almacenamiento del sitio, tras confirmar. |
Buscar en la página
Se abre bajo la barra de direcciones al elegir Buscar en la página en el menú.
Puedes
- Escribe el texto en Buscar en la página: busca mientras escribes, marca las coincidencias en la página y muestra cuántas hay.
- Salta a la coincidencia siguiente o a la anterior con Siguiente y Anterior; la tecla Buscar del teclado también va a la siguiente.
- Ciérrala con Cerrar; eso borra la búsqueda.
No puedes, y por qué
—
La página
La página se ejecuta en el WebView del sistema, con JavaScript y almacenamiento DOM activados.
Puedes
- Usa la página como siempre: desplázate, toca, escribe y haz zoom con los dedos.
- Elige ficheros para un campo de subida con el selector de ficheros del sistema.
- Ve los diálogos
alertyconfirmde la propia página. - Lee los errores de carga en un aviso rojo que puedes copiar: el mensaje del propio WebView,
HTTP <código> <motivo>cuando la propia página responde con 400 o más, oWebView render process crashed. Reload the page.Que falle el proceso de renderizado de la página no cierra PocketCode.
No puedes, y por qué
- Seguir enlaces con otros esquemas (
tel:,mailto:,intent:,file:…): se ignoran, sin ningún mensaje.A propósito - Cargar contenido HTTP dentro de una página HTTPS (contenido mixto).A propósito
- Continuar con un certificado TLS no válido, iniciar sesión con autenticación HTTP básica o presentar un certificado de cliente: la petición se cancela. Solo se confía en las autoridades de certificación del sistema.A propósito
- Dejar que una página use la cámara, el micrófono o tu ubicación: se deniegan siempre y la Consola muestra un aviso (Warning).A propósito
- Descargar ficheros dentro de la app: un enlace de descarga se abre en el navegador del sistema.A propósito
- Abrir ventanas emergentes.A propósito
Dispositivo y viewport
Elige un dispositivo para ver cómo se ve y se comporta una página con ese tamaño. Un perfil cambia solo dos cosas: el tamaño del viewport y el User-Agent que recibe la página.
- La vista de la página toma el ancho y el alto del perfil en píxeles CSS. Si no caben en pantalla, se reduce visualmente (los toques también se escalan), como el modo dispositivo de Chrome.
- El lado largo del viewport nunca pasa de 1600 píxeles CSS: los perfiles más grandes conservan sus proporciones dentro de ese límite (Desktop 4K, por ejemplo, se ve a 1600 × 900).
- El User-Agent corresponde a la familia: Safari en iOS para los perfiles de iPhone y iPad, Chrome en Android para los móviles y tablets Android, Chrome en Windows o Mac para los escritorios.
- El ratio de píxeles que aparece junto a cada tamaño (como
2.625x) es solo texto: no se aplica a la página. - Elegir un perfil recarga la página si hay una cargada. Adaptable quita el tamaño fijo, así que la página llena el área, pero mantiene un User-Agent de Chrome en Android. Antes de elegir nada no hay ninguna emulación.
Puedes
- Abre Perfil de dispositivo en el menú. El diálogo se titula Perfiles de dispositivo y se abre en el grupo de tu perfil actual.
- Cambia entre Móvil, Tablet y Escritorio.
- Elige Adaptable (Se adapta al tamaño del contenedor) o uno de los 21 perfiles; el activo lleva una marca de verificación (los lectores de pantalla leen Seleccionado).
- Rota 90° un perfil de móvil o de tablet con Rotar dispositivo; el diálogo se cierra.
No puedes, y por qué
- Rotar un perfil de escritorio.A propósito
- Superar los 1600 píxeles CSS en el lado largo, sea cual sea el perfil: la página dejaría de responder con fluidez.A propósito
Los 21 perfiles
| Grupo | Perfiles (píxeles CSS) |
|---|---|
| Móvil (7, rotables) | 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, rotables) | 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 |
| Escritorio (8, no rotables) | 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) |
El panel DevTools
Toca el botón </> (Herramientas de desarrollo) de la barra de direcciones para mostrar u ocultar el panel. Empieza oculto.
- En vertical el panel va debajo de la página; en horizontal (cuando la pantalla es más ancha que alta) va a la derecha.
- Arrastra el asa entre la página y el panel para cambiarle el tamaño: la página conserva entre el 25 % y el 80 % del espacio, el 55 % por defecto.
- Hay siete pestañas. Solo la seleccionada muestra su nombre, para que quepan todas.
- Almacenamiento, Elementos, CSS y Rend. vuelven a leer la página cada vez que las seleccionas, mientras haya una página cargada. Red completa los tiempos de las peticiones al abrirla. Auditoría solo se ejecuta cuando pulsas Ejecutar auditoría.
- En Red, Almacenamiento y Elementos, el detalle de una fila se abre debajo de la lista, dentro del panel, para que la página siga visible. Tiene un título, pestañas opcionales, algunas acciones y Cerrar, y hace scroll si es largo.
Las siete pestañas
| Pestaña | Qué muestra |
|---|---|
| Consola | Lo que la página escribe en el log, más una línea para ejecutar JavaScript. |
| Red | Las peticiones que hace la página, con estado, tamaño y duración. |
| Almacenamiento | El localStorage, el sessionStorage y las cookies de la página. |
| Elementos | El árbol DOM, con un selector de elementos. |
| CSS | Un editor de CSS y las reglas propias de la página. |
| Rend. | Tiempos de carga, métricas web esenciales y estadísticas de la página. |
| Auditoría | Una comprobación local de calidad con 47 pruebas. |
No puedes, y por qué
- Poner puntos de interrupción, conectar las DevTools remotas de Chrome (
chrome://inspect), usar extensiones del navegador, o inspeccionar IndexedDB, Cache Storage, service workers y el manifiesto web: el motor es el WebView del sistema, la app no activa la depuración remota y estos siete paneles son todo lo que hay.Dispositivo
Consola
Muestra los mensajes console.* de la página con su nivel y su texto y, cuando la página los da, la hora, el fichero y la línea. También muestra algunos avisos de la app: permisos denegados, un problema al leer el almacenamiento y la recarga automática.
Puedes
- Filtra por nivel con los cuatro chips (error, aviso, info, depuración). Cada uno muestra su contador; tócalo otra vez para quitar el filtro. No hay chip para un
console.lognormal: se ven cuando no hay filtro. El número de la derecha es cuántos mensajes se listan. - Vacía la consola con el icono de papelera (Limpiar).
- Ejecuta JavaScript en el marco principal de la página: escríbelo en Evalúa JavaScript… y toca Ejecutar. El comando y su resultado (cortado a 2.000 caracteres) se añaden como mensajes normales, así que los filtros también les afectan.
- Recupera comandos anteriores con Comando anterior: los recorre y nunca repite el mismo comando dos veces seguidas.
- Copia un mensaje manteniendo pulsado su texto.
- Los mensajes nuevos se desplazan a la vista solo si ya estabas al final de la lista.
No puedes, y por qué
- Ver más de los últimos 1.000 mensajes: los más antiguos se descartan. Navegar no vacía la consola, pero abrir el Dev Browser con otra dirección sí.A propósito
Red
Una lista de las peticiones que hace la página, cada una con una letra para su tipo (D documento, C hoja de estilos, J script, I imagen, F fuente o fetch, X XHR, M multimedia, ? otro), su nombre de fichero, estado, tamaño, duración y una barra que compara su duración con la de la más lenta. Un resumen dice mostradas/total · KB · ms medios. La lista se observa: cada petición se anota cuando el WebView la hace, sin bloquearla ni cambiarla, y su estado, duración, tamaño y tipo real se completan después con los avisos de error y con los datos de Resource Timing de la página, que se leen al terminar de cargar una página y al abrir la pestaña. Las únicas peticiones que hace la propia app son las del servidor local del proyecto, para añadirles su credencial.
Puedes
- Filtra por tipo con los chips All, Doc, CSS, JS, XHR (incluye fetch) e Img. Esas palabras salen siempre en inglés.
- Toca una petición para abrir su detalle bajo la lista, con tres pestañas: General (url, method, status, size, time, duration y error), Cabeceras de solicitud (las que entrega el WebView) y Cabeceras de respuesta.
- Vacía la lista con el icono de papelera (Limpiar).
No puedes, y por qué
- Ver los cuerpos de la petición o de la respuesta, las cabeceras de respuesta o el tipo MIME: la pestaña Cabeceras de respuesta siempre dice Ninguna, porque nada rellena todavía esos campos.Aún no
- Desglosar una petición en fases de DNS, TLS y espera: cada petición tiene una sola barra, porque el WebView no da esos tiempos.Dispositivo
- Conservar la lista de una página a la siguiente: se vacía en cada navegación de la página principal (solo se queda el documento nuevo) y guarda como máximo 1.000 peticiones.A propósito
- Contar con un estado en toda petición correcta: sale de los datos de Resource Timing de la página, y cuando el WebView no lo informa la columna muestra un guion. Los estados de error (400 y más) siempre salen.Dispositivo
Almacenamiento
Muestra el localStorage, el sessionStorage y las cookies de la página en tres secciones (LOCAL STORAGE, SESSION STORAGE y COOKIES), cada una con su recuento, más un contador total n elementos. Lee la página al abrir la pestaña y con Actualizar. Sirve para mirar, copiar y borrar; para crear o cambiar un valor, ejecuta JavaScript en la Consola.
Puedes
- Toca una fila para abrir su clave y su valor completos en el detalle bajo la lista.
- Toca Copiar para copiar el valor (Copiado al portapapeles lo confirma).
- Toca Eliminar para quitar esa clave.
- Vacía una sección entera con el icono rojo de limpiar junto a su título (Borrar).
- Cuando la página no tiene nada, el panel dice Sin datos de almacenamiento y sugiere probar un sitio como google.com.
No puedes, y por qué
- Ver las cookies HttpOnly ni los atributos de una cookie (dominio, caducidad, Secure, SameSite): el panel lee
document.cookie, que las oculta a los scripts de la página.A propósito - Borrar una cookie creada para otra ruta o dominio: borrar una cookie la caduca con
path=/.A propósito
Elementos
Un árbol de solo lectura del DOM de la página, coloreado con tu tema de código. Cada fila muestra <etiqueta id class …>, el texto de los nodos hoja y el número de hijos (hijo / hijos). Se abre con <html> expandido y sus hijos también, salvo <head>; toca una fila para expandirla o plegarla. La cabecera cuenta los nodos. Es una instantánea, leída al abrir la pestaña o al tocar Refrescar DOM: no se actualiza sola, y aquí no puedes editar nodos ni ver estilos calculados ni eventos.
Puedes
- Toca el icono del selector (Seleccionar un elemento en la página) y luego toca cualquier cosa de la página. La cabecera dice Toca un elemento en la página; tu siguiente toque elige el elemento sin activarlo (no se sigue ningún enlace ni se envía ningún formulario), y el árbol se abre en ese elemento, lo resalta en la página y abre su detalle bajo la lista. Si el elemento está más hondo de lo que llega la instantánea, elige el ancestro más profundo que sí está.
- Vuelve a leer la instantánea con Refrescar DOM.
- Abre el detalle de un nodo con su icono (i) (Detalles de la entrada): su
<etiqueta>, su selector CSS y suid,class, atributos ytext. - Toca Copiar selector para copiar un selector posicional como
html > :nth-child(2) > :nth-child(1); usa posiciones, no ids ni clases. - Toca Resaltar en la página para rodear el elemento con un contorno naranja y llevarlo al centro. El contorno se queda hasta que resaltes otro nodo o recargues.
- Si no hay nada cargado, el panel dice Sin árbol DOM y Carga una página y pulsa refrescar.
No puedes, y por qué
- Ver todo el DOM: la instantánea se detiene a profundidad 10, 100 hijos por nodo (un nodo
… +N morerepresenta el resto), 20 atributos por elemento, 500 caracteres de texto y 200 caracteres por valor de atributo. Solo incluye elementos (sin comentarios) y no mira dentro de iframes ni de Shadow DOM.A propósito
CSS
Un pequeño editor que aplica CSS a la página abierta, y una lista de las reglas propias de la página. El CSS vive solo en la página: el panel nunca escribe en los ficheros de tu proyecto, así que copia lo que te guste a tu hoja de estilos.
Puedes
- Escribe CSS en el editor (Editor) y toca Aplicar CSS: crea, o actualiza, un elemento
<style>con el idpocket-css-injecten la página. - Quita lo aplicado con Quitar (solo está activo mientras haya algo aplicado).
- El último CSS que aplicaste se vuelve a aplicar tras cada carga, recarga y navegación, incluso a otro sitio, hasta que toques Quitar. Se pierde al abrir el Dev Browser con otra dirección.
- Cambia a Reglas (n) para leer las reglas de la página: el selector, el número de propiedades, las tres primeras y de dónde viene (la dirección de la hoja de estilos o
inline). Toca una regla para copiar sus declaraciones al editor; al aplicarlas se sobrescribe la original, no se edita en su sitio. - Cuando no hay nada que listar, el panel dice No se detectaron reglas CSS.
No puedes, y por qué
- Ver más de 200 reglas, reglas dentro de
@media,@supportso@keyframes, ni hojas de estilo que el navegador no deja leer a una página: solo se listan las reglas de primer nivel, y las hojas ilegibles se omiten sin avisar.A propósito
Rendimiento
Tiempos de carga y estadísticas de la página, leídos de la API de rendimiento de la página. Toca Actualizar para leerlos otra vez. No perfila la CPU ni JavaScript y no tiene limitación (throttling).
Puedes
- Lee las tarjetas bajo MÉTRICAS WEB ESENCIALES: Primer pintado (FP), Primer pintado con contenido (FCP), DOM cargado (DCL) y Carga de página siempre; Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) y Tiempo de Bloqueo Total (TBT) cuando su valor es mayor que cero. Cada tarjeta se colorea como buena, mejorable o mala según umbrales fijos (por ejemplo LCP 2.500 y 4.000 ms, CLS 0,1 y 0,25, TBT 200 y 600 ms).
- Lee ESTADÍSTICAS DE PÁGINA: Nodos DOM, Recursos y, cuando el WebView los expone, Heap JS y Transferido.
- Lee la CASCADA DE RECURSOS (n): hasta 50 recursos con su tipo, los últimos 30 caracteres del nombre y la duración.
- Toca Grabar: vuelve a leer las métricas cada 1,5 segundos hasta que toques Detener. No graba una traza; es un refresco en vivo.
No puedes, y por qué
- Ver las tarjetas de LCP, CLS y TBT cuando el WebView no las informa: solo aparecen cuando su valor es mayor que cero. El heap de JS y el tamaño transferido también dependen de lo que exponga el WebView.Dispositivo
Auditoría
Una estimación local, no Lighthouse. PocketCode ejecuta su propio conjunto de 47 comprobaciones como JavaScript dentro de la página. Cada comprobación puntúa de 0 a 1 según umbrales fijos, y la nota de una categoría es la media de sus comprobaciones por 100. No hay Lighthouse, ni emulación de móvil o de red, ni trazas. Los nombres de las comprobaciones, las etiquetas de los medidores y las palabras passed, warnings y failed salen siempre en inglés.
Puedes
- Toca Ejecutar auditoría (dice Auditando… mientras corre). La auditoría solo se ejecuta cuando pulsas el botón. Antes de la primera ejecución el panel dice Ejecuta una auditoría para analizar la calidad de la página y Analiza Rendimiento, Accesibilidad, Buenas Prácticas, SEO y PWA.
- Lee cinco medidores de 0 a 100 (Perf, A11y, BP, SEO y PWA; en verde desde 90, en naranja desde 50), la dirección auditada y cuánto tardó la auditoría en milisegundos.
- Lee el resumen (
N passed,N warnings,N failed) y filtra con los chips Todas (n), aprobadas, avisos y fallos. Una comprobación se aprueba con 0,9 o más, es un aviso desde 0,5 hasta 0,9 y falla por debajo de 0,5. - Pliega las categorías y abre una comprobación para leer su detalle (hasta 8 líneas).
- Vuelve a tocar el botón, ahora en la barra superior, para medir otra vez.
No puedes, y por qué
- Obtener puntuaciones comparables a las de Lighthouse o PageSpeed Insights: son estimaciones propias de PocketCode, y algunas comprobaciones solo miran una muestra de la página (la profundidad del DOM lee los primeros 150 elementos, el tamaño de fuente 100 y las áreas táctiles 50).A propósito
- Inspeccionar un service worker: la comprobación solo detecta si hay uno controlando la página.A propósito
Las 47 comprobaciones
| Categoría | Comprobaciones |
|---|---|
| Performance (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 |
| Accessibility (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 |
| Best practices (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 |
Historial, marcadores y datos del sitio
El historial, los marcadores y el diálogo de la caché empiezan todos en el Menú del navegador.
Historial y Marcadores
Historial y Marcadores abren el mismo diálogo, en una pestaña o en la otra. Su título es el nombre de la pestaña activa y tiene un botón Cerrar. El historial guarda las últimas 100 páginas, la más reciente primero; una página que recargas seguidamente solo actualiza su título. La app guarda hasta 200 marcadores y nunca repite una dirección. Ambos se conservan en el dispositivo entre sesiones.
Puedes
- Cambia entre las pestañas Historial y Marcadores.
- Toca una entrada para abrir su dirección (sigue las mismas reglas que la barra de direcciones) y cerrar el diálogo.
- Elimina un marcador con su icono de papelera (Eliminar).
- Borra todo el historial con el icono rojo de barrer (Borrar), que solo sale en la pestaña del historial cuando hay entradas. No pide confirmación.
- Cuando una lista está vacía dice Aún no hay historial. Navega por algunas páginas. o Aún no hay marcadores. Añade uno desde el menú.
No puedes, y por qué
- Guardar más de 100 entradas de historial o más de 200 marcadores.A propósito
Añadir Marcador
El diálogo se abre desde Agregar marcador en el menú.
Puedes
- Edita Título, relleno con el título de la página (o su dirección), y URL, rellena con la dirección actual.
- Toca Guardar, que sigue desactivado mientras uno de los campos esté vacío, o Cancelar. Marcador añadido aparece aunque esa dirección ya estuviera guardada; no se guarda dos veces.
No puedes, y por qué
—
Limpiar caché
El diálogo pregunta: Esto borrará todos los datos en caché, incluidas las cookies y el almacenamiento. ¿Continuar?
Puedes
- Toca Confirmar o Cancelar.
- Al confirmar, borra la caché HTTP del WebView; el
localStorage, elsessionStorage, las cookies visibles para JavaScript y las bases IndexedDB del sitio de la página abierta; y todas las cookies del WebView de la app, no solo las de este sitio. Después se actualiza el panel Almacenamiento y aparece Datos del sitio borrados. - Conserva tu historial de navegación: no se borra ni el historial de atrás y adelante de la página ni la lista Historial.
No puedes, y por qué
- Borrar los datos de un solo sitio: el borrado de cookies abarca todos los sitios que conoce el WebView de la app.A propósito
Capturas
Dos acciones en el menú: Tomar captura y Captura (página completa). Las dos guardan un PNG llamado screenshot_<milisegundos>.png en Pictures/PocketCode/Screenshots, así que aparece en tu galería, y responden Captura guardada (la de página completa añade su tamaño, como (1080x4200)).
Puedes
- Tomar captura guarda lo que muestra la vista de la página. Si su lado largo pasa de 4.096 px, se reduce en proporción.
- Captura (página completa) primero recorre la página hacia abajo en hasta 12 saltos de un 90 % de la pantalla, para que aparezca el contenido de carga diferida; luego dibuja el documento entero, recorta el vacío del final y te devuelve a donde estabas. Captura a una densidad de hasta 2×.
No puedes, y por qué
- Capturar una página muy alta sin aviso: el lienzo de la captura de página completa se dimensiona a 1,45 veces la altura medida y se limita a 20.000 px de alto y 64 MB. Cuando ese tamaño supera el tope, el aviso termina con
[truncada a 5 tiles], aunque la página entera quepa. Pese al texto, el corte es ese tope de altura y de memoria, no un número de tiles.Dispositivo - Guardar en la galería en Android 9, la versión mínima: allí el PNG va a la carpeta propia de la app (
…/files/Pictures/PocketCode/Screenshots). Desde Android 10 va a la galería.Dispositivo
Recarga automática
Cuando el agente de IA escribe un fichero de tu proyecto, la página se recarga sola si la página abierta es ese fichero, o el index.html de su carpeta, o si la página abierta está en localhost, 127.0.0.1 o [::1] y el fichero es estático (.html, .htm, .css, .js, .mjs, .json, .svg, .png, .jpg, .jpeg, .gif, .webp, .woff, .woff2). La Consola registra una línea que empieza por Live Reload: y acaba en actualizado (ese texto sale siempre en español).
Puedes
- Pide al agente de IA del Chat IA que edite tu página con el Dev Browser abierto en ella, y mira cómo se recarga.
- Recarga a mano cuando quieras con Recargar.
No puedes, y por qué
- Hacer que la página se recargue cuando guardas tú un fichero en el editor, o activar o desactivar la recarga automática: solo la disparan las escrituras del agente de IA.Aún no
El agente de IA y el Dev Browser
El agente de IA del Chat IA tiene 19 herramientas que manejan el Dev Browser. Solo funcionan mientras el Dev Browser está abierto: si no, responden Dev Browser is not open. Ask the user to open the Dev Browser, then call this tool again.
| Grupo | Herramientas |
|---|---|
| Abrir páginas (2) | browser_navigate (http, https o about; espera a que la página empiece y termine de cargar, hasta 5 s y 10 s) · browser_nav_action (BACK, FORWARD o RELOAD) |
| Leer la página (7) | browser_get_page_info · browser_get_elements · browser_get_console_logs · browser_get_network · browser_get_storage (lee la página en vivo, también con la pestaña cerrada) · browser_get_performance · browser_find_text |
| Actuar sobre la página (4) | browser_click_element · browser_input_text · browser_scroll · browser_wait_for (un selector, un texto o red inactiva; de 500 a 15.000 ms) |
| Auditar y capturar (2) | browser_run_lighthouse_audit (la misma comprobación local que Auditoría) · browser_screenshot |
| Dispositivo, almacenamiento y script (4) | browser_set_device · browser_clear_storage · browser_set_cookie · browser_evaluate_js |
Puedes
- Pide al agente que abra tu página, lea su consola y sus peticiones, pulse y escriba para recorrer un flujo, haga una captura o lance la auditoría.
- Cierra el Dev Browser para que el agente no pueda llegar a la página.
No puedes, y por qué
- Usar las herramientas con el Dev Browser cerrado.A propósito
- Ejecutar un script de más de 32.768 caracteres o que dure más de 15 segundos, ni usar un selector de más de 512 caracteres.A propósito
- Crear una cookie HttpOnly:
browser_set_cookieescribe a través dedocument.cookie.A propósito
Free y Pro
Privacidad y seguridad
Qué guarda el Dev Browser, dónde, y a qué puede llegar.
- El historial y los marcadores se quedan en tu dispositivo, en el almacenamiento privado de la app (
SharedPreferences, un texto JSON, sin cifrar). Ninguna parte del código de sincronización de la app los lee, así que Cloud Sync no los lleva. El historial guarda las direcciones completas. - Cerrar sesión lo borra. Al cerrar sesión en PocketCode se borran las cookies, el almacenamiento y la caché del WebView junto con el historial y los marcadores del Dev Browser, porque el WebView lo comparten todas las cuentas.
- Es un solo navegador para toda la app. El WebView comparte sus cookies con el resto de la app, así que un sitio en el que inicias sesión aquí sigue con la sesión iniciada hasta que cierres sesión en PocketCode o uses Limpiar caché, que borra todas las cookies del WebView.
- Permisos. Las peticiones de una página para la cámara, el micrófono y tu ubicación se deniegan siempre.
- Sin ficheros. La vista de la página no puede leer ficheros del dispositivo, el contenido mixto está bloqueado y Safe Browsing de Google está activado.
- El servidor local escucha solo en
127.0.0.1y rechaza cualquier petición sin su credencial; el Dev Browser añade la credencial por sí mismo. - Qué añade a una página. Observadores de rendimiento (
window.__pcPerf), el CSS que aplicas (un elemento<style>con el idpocket-css-inject), el marco del selector de elementos y una clase de resaltado. No registra ningún puenteaddJavascriptInterface, así que las páginas no acceden a objetos de la app. - El agente de IA puede leer y actuar sobre la página abierta mientras el Dev Browser está abierto: ejecutar JavaScript, pulsar, escribir, borrar el almacenamiento y crear cookies.
Limitaciones
Los límites principales del Dev Browser, cada uno con su motivo. Las secciones de arriba recogen el resto.
- El motor es el WebView del sistema de tu dispositivo, así que su versión, y datos como
performance.memoryo el estado de las respuestas correctas, dependen de él. No hay extensiones ni depuración remota.Dispositivo - Las páginas de Internet necesitan conexión; solo el servidor local del proyecto funciona sin ella.Requiere red
- El HTTP sin cifrar solo se permite hacia
localhost,127.0.0.1y10.0.2.2. Para un servidor de tu red local, usa HTTPS o un túnel.Requiere red - Los certificados TLS no válidos, la autenticación HTTP básica y los certificados de cliente se rechazan, y solo se confía en las autoridades de certificación del sistema.A propósito
- Una dirección escrita en la barra debe ser
httpohttps; cualquier otra cosa se convierte en una búsqueda en Google, y el buscador no se puede cambiar.A propósito - Hay una sola vista de página: sin pestañas, sin modo privado, sin ventanas emergentes y sin descargas dentro de la app.A propósito
- El contenido mixto, la cámara, el micrófono y la ubicación están bloqueados.A propósito
- No hay botón de cerrar ni atajos de teclado: sales con el gesto atrás del sistema, cuando se acaba el historial de la página.A propósito
- Un perfil de dispositivo cambia el tamaño del viewport, con un tope de 1600 píxeles CSS en el lado largo, y el User-Agent. No se emula nada más.A propósito
- El panel Red no muestra cuerpos, cabeceras de respuesta ni tipos MIME, y la pestaña Cabeceras de respuesta siempre dice Ninguna.Aún no
- Auditoría es una estimación local propia de PocketCode con 47 comprobaciones, no Lighthouse, y sus textos salen siempre en inglés.A propósito
- La recarga automática solo reacciona a los ficheros que escribe el agente de IA, no a lo que guardas a mano.Aún no
- Sin ningún servidor local en marcha, el icono de globo del editor a pantalla completa, Abrir en DevBrowser y el chip del panel Ejecutar vuelven al puerto
8765, donde no contesta nadie: el espacio de trabajo del proyecto arranca el servidor cuando abres el proyecto en la página Editor.Aún no - Las capturas están limitadas por la memoria: 4.096 px para la parte visible, 20.000 px y 64 MB para una página completa, y en Android 9 van a la carpeta propia de la app.Dispositivo
Resolución de problemas
Los mensajes de abajo son los reales que muestra la app. Cuando un mensaje viene del servidor local o de las herramientas del agente de IA, su idioma es fijo.
El icono de globo de la cabecera del Editor está en gris, o no sale
Solo aparece cuando el fichero abierto es HTML, CSS, JavaScript o TypeScript (y no es externo), y se queda en gris hasta que el servidor local del proyecto está en marcha. El servidor arranca solo cuando la página Editor abre un proyecto, así que dale un momento.
Mi página no carga desde el icono de globo del editor, desde Abrir en DevBrowser ni desde el chip del panel Ejecutar
Usan el puerto del servidor local que está en marcha (de 8765 a 8774). Si todavía no hay ninguno, vuelven a http://localhost:8765/…, donde no contesta nadie. Abre el proyecto en la página Editor, que arranca el servidor, espera un momento y vuelve a intentarlo.
La página dice 404 y Archivo no encontrado: <ruta>
Esa página viene del servidor local del proyecto, y su texto está siempre en español. No hay ningún fichero en esa ruta dentro del proyecto que sirve: revisa la ruta y el nombre del fichero.
401 Unauthorized
El servidor local responde esto a cualquier petición que llegue sin su credencial. El Dev Browser añade la credencial él mismo, así que solo lo ves si la misma dirección se abre en otra app o navegador.
403 Forbidden: Acceso denegado
La dirección apunta fuera de la carpeta del proyecto (por ejemplo con ../) y el servidor la rechaza. Mantén la ruta dentro del proyecto.
Un aviso rojo que dice HTTP <código> <motivo>
El documento principal de la página respondió con un estado de error, 400 o más (por ejemplo HTTP 404 Not Found). Las imágenes, scripts y llamadas a API que fallan no lanzan aviso; búscalas en Red, donde un estado de error sale en rojo.
WebView render process crashed. Reload the page.
El proceso de renderizado de la página se detuvo. PocketCode sigue abierto: toca Recargar.
Un aviso rojo con otro mensaje, y la página no carga
Es el texto de error del propio WebView para el documento principal, por ejemplo cuando no se puede llegar al servidor o no se resuelve el nombre. Revisa la dirección y tu conexión. Recuerda que el HTTP sin cifrar hacia una dirección de la red local está bloqueado (mira Limitaciones).
No se pudo capturar la pantalla
Todavía no hay una vista de página que capturar. Espera a que aparezca una página y vuelve a intentarlo.
Error al capturar la pantalla
No se pudo dibujar la página en una imagen, por ejemplo porque una página muy grande se quedó sin memoria. Prueba Tomar captura (la parte visible) en lugar de la página completa.
Error al capturar el bitmap del WebView
No se pudo convertir la parte visible en una imagen: la vista de la página aún no tenía tamaño, o se acabó la memoria. Inténtalo otra vez cuando la página esté en pantalla.
Error al guardar la captura
La imagen se dibujó pero no se pudo escribir el PNG en la galería (ni en la carpeta de la app en Android 9). Comprueba que el dispositivo tiene espacio libre y vuelve a intentarlo.
El aviso tras una captura de página completa termina con truncada a 5 tiles
El lienzo de la captura (la altura de la página más un margen de seguridad del 45 %) superó el presupuesto de 20.000 px de alto y 64 MB. Con una página muy alta la imagen se corta donde se acabó el presupuesto; con una más corta puede que ya contenga la página entera, así que mira su final. Pese al texto, el corte no es un número de tiles. Si la página es muy alta, desplázate a la parte que necesitas y usa Tomar captura.
No se pudieron borrar los datos del sitio
Todavía no hay una vista de página. Abre primero una página y vuelve a usar Limpiar caché.
Sin actividad de red
La lista se vacía en cada navegación de la página principal y solo guarda las peticiones hechas desde entonces. Recarga la página con la pestaña Red abierta para volver a verlas.
Sin datos de almacenamiento
La página no tiene localStorage, sessionStorage ni cookies (las cookies HttpOnly no se ven). El panel sugiere probar un sitio como google.com.
Sin árbol DOM y Carga una página y pulsa refrescar
Elementos muestra una instantánea, leída al abrir la pestaña o al tocar Refrescar DOM. Carga una página y luego refresca.
No se detectaron reglas CSS
El panel lista las reglas de primer nivel de las hojas de estilo que la página le deja leer. Una página cuyas reglas están todas dentro de @media, o cuyas hojas vienen de otro sitio, puede no mostrar ninguna.
Auditoría fallida: Audit script returned no data
El script de auditoría no devolvió nada, por ejemplo cuando no hay ninguna página cargada. Carga una página, espera a que termine y toca Ejecutar auditoría otra vez.
La consola muestra Permission denied by Dev Browser: <recurso> o Geolocation denied by Dev Browser for origin: <origen>
La página pidió la cámara, el micrófono o tu ubicación. El Dev Browser siempre los deniega y deja un aviso (Warning) para que sepas por qué falló la petición.
La página no se recarga cuando guardo en el editor
La recarga automática solo ocurre cuando el agente de IA escribe el fichero. Guardar a mano no la dispara: toca Recargar.
Dev Browser is not open. Ask the user to open the Dev Browser, then call this tool again.
Es lo que responde una herramienta browser_* del agente de IA cuando el Dev Browser está cerrado. Abre el Dev Browser en tu página y pide al agente que lo intente otra vez.
Siguientes pasos