Configuración inicial
Copia 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
Título de la sección “Instalar”Puedes utilizar nuestra configuración asistida por IA para instalar el plugin. Agrega las Capgo habilidades a tu herramienta de IA utilizando el siguiente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego utilice la siguiente solicitud:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Si prefiere la configuración manual, instale el complemento ejecutando los siguientes comandos y siguiendo las instrucciones específicas de la plataforma a continuación:
bun add @capgo/capacitor-network-diagnosticsbunx 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);Ver el estado de red actual
Sección titulada “Ver el estado de 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 validado y de portal captivo. iOS informa el estado de ruta, tipo de interfaz, rutas costosas y rutas con restricciones a través de Network.framework.
Prueba la alcance de API
Sección titulada “Prueba la alcance de API”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);}Utiliza un punto final de salud real desde tu backend. Una comprobación de navegador solo puede estar oculta por WebView, CORS, proxy o comportamiento de portal captivo, mientras que este plugin utiliza redes nativas.
Prueba un puerto TCP
Sección titulada “Prueba un puerto TCP”const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Es útil cuando un punto de acceso Wi-Fi bloquea puertos no estándar, MQTT, puertas de enlace personalizadas o un backend privado, pero permite el navegación normal.
Prueba la conectividad de WebSocket
Sección titulada “Prueba la conectividad de WebSocket”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Utiliza esto cuando los proxies o puertos captivos permiten páginas HTTPS pero bloquean las solicitudes de actualización de WebSocket.
Medir la velocidad de descarga
Sección titulada “Medir la 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);Utiliza tu propio punto de acceso de archivo estático para que el resultado refleje el camino de red que necesita tu aplicación.
Estimar la pérdida de paquetes
Sección titulada “Estimar la 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.
Caída de red
Título de sección “Caída de red”La implementación web está destinada al desarrollo. Los navegadores no pueden abrir sockets TCP brutos y las comprobaciones de URL pueden estar limitadas por CORS. Utilice compilaciones de iOS o Android para diagnósticos de soporte real.