Iniciar sesión
Copiar un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-network-diagnostics`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/network-diagnostics/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Instalar
Sección titulada “Instalar”Puede utilizar nuestra configuración asistida por IA para instalar el plugin. Agregue las Capgo habilidades a su herramienta de IA utilizando el siguiente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego utilice el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Si prefieres la configuración manual, instala el complemento ejecutando los siguientes comandos y sigue las instrucciones específicas de la plataforma a continuación:
npm install @capgo/capacitor-network-diagnosticsnpx cap syncImportar
Sección titulada “Importar”import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Ejecutar un informe de diagnóstico completo
Sección titulada “Ejecutar un informe de diagnóstico completo”runDiagnostics es la forma más rápida de recopilar un informe de soporte para un usuario en una red restringida.
const report = await NetworkDiagnostics.runDiagnostics({ urls: [{ url: 'https://api.example.com/health', method: 'HEAD' }], ports: [{ host: 'api.example.com', port: 443 }], websockets: [{ url: 'wss://ws.example.com/socket' }], download: { url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, }, packetLoss: { mode: 'tcp', host: 'api.example.com', port: 443, count: 10, },});
console.log(report.status.connectionType);console.log(report.issues);Verificar el estado de la red actual
Sección titulada “Ver el estado de la red actual”const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);console.log(status.connectionType);console.log(status.internetReachable);console.log(status.captivePortal);Las banderas exactas dependen de la plataforma. Android puede informar el estado de internet y puerta de enlace captiva. iOS informa el estado de ruta, tipo de interfaz, rutas caras y rutas con restricciones a través de Network.framework.
Probar la API alcance de llegada
Sección titulada “Probar la API alcance de llegada”const result = await NetworkDiagnostics.testUrl({ url: 'https://api.example.com/health', method: 'HEAD', timeoutMs: 5000, followRedirects: true,});
if (!result.reachable) { console.warn(result.errorCode, result.errorMessage);}Utilice un punto de conexión de salud real desde su backend. Un chequeo solo de navegador puede estar oculto por WebView, CORS, proxy o comportamiento de puerta de enlace captiva, mientras que este plugin utiliza redes nativas.
Probar una conexión TCP a un puerto
Sección titulada “Probar una conexión TCP a un puerto”const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Esto es útil cuando un punto de acceso Wi-Fi bloquea puertos no estándar, MQTT, puertas de enlace personalizadas o un backend privado mientras aún permite la navegación normal.
Probar la conectividad WebSocket
Sección titulada “Conectividad WebSocket de prueba”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Utilice esto cuando los proxies o los portales captivos permiten páginas HTTPS pero bloquean las solicitudes de actualización de WebSocket.
Medir velocidad de descarga
Sección titulada “Medir velocidad de descarga”const speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);Utilice su propio punto de conexión de archivo estático para que el resultado refleje el camino de red que necesita su aplicación.
Estimar pérdida de paquetes
Sección titulada “Estimar pérdida de paquetes”const loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);El ping ICMP bruto no es portátil en aplicaciones de App Store y Play Store. Este método mide la pérdida de paquetes a nivel de aplicación repitiendo sondas TCP o HTTP.
Fallo de red de fallback web
Sección titulada “Fallo de red”La implementación web está destinada al desarrollo. Los navegadores no pueden abrir sockets TCP crudos y las comprobaciones de URL pueden estar limitadas por CORS. Utilice las compilaciones de iOS o Android para obtener soporte de diagnósticos reales.