Démarrage
Copiez un prompt de configuration avec les étapes d'installation et la guide Markdown complet pour ce 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.
Installation
Section intitulée « Installation »Vous pouvez utiliser notre configuration assistée par l'IA pour installer le plugin. Ajoutez les Capgo compétences à votre outil IA en utilisant la commande suivante :
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsEnsuite, utilisez la prompt suivante :
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Si vous préférez la configuration manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques au plateforme ci-dessous :
npm install @capgo/capacitor-network-diagnosticsnpx cap syncImporter
Section intitulée « Importer »import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Exécuter un rapport de diagnostic complet
Section intitulée « Exécuter un rapport de diagnostic complet »runDiagnostics C'est la meilleure façon de collecter un rapport de support pour un utilisateur sur un réseau restreint.
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);Vérifier l'état actuel du réseau
Section intitulée « Vérifier l'état actuel du réseau »const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);console.log(status.connectionType);console.log(status.internetReachable);console.log(status.captivePortal);Les drapeaux exacts dépendent de la plateforme. Android peut signaler l'état de l'internet validé et de la passerelle captive. iOS signale l'état de la route, le type d'interface, les chemins coûteux et les chemins contraints via Network.framework.
Tester la API accessibilité
Section intitulée “Tester la API accessibilité”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);}Utilisez un point de terminaison de santé réel provenant de votre backend. Un contrôle uniquement en navigateur peut être masqué par WebView, CORS, proxy ou comportement de passerelle captive, tandis que ce plugin utilise le réseau natif.
Tester un port TCP
Section intitulée “Tester un port TCP”const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Cela est utile lorsque l'accès point Wi-Fi bloque les ports non standards, MQTT, les passerelles personnalisées ou un backend privé tout en permettant la navigation normale.
Tester la connectivité WebSocket
Section intitulée “Tester la connectivité WebSocket”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Utilisez cela lorsque les proxies ou les portails captifs autorisent les pages HTTPS mais bloquent les demandes d'upgrade WebSocket.
Mesurer la vitesse de téléchargement
Mesurer la vitesse de téléchargementconst speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);Utilisez votre propre point de terminaison de fichier statique afin que le résultat reflète le chemin réseau dont votre application a besoin.
Estimer la perte de paquets
Mesurer la perte de paquetsconst loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);Le ping ICMP brut n'est pas portable dans les applications App Store et Play Store. Cette méthode mesure la perte de paquets au niveau de l'application en répétant des sondes TCP ou HTTP.
Copy to clipboard