Prise en main
Copiez un prompt de configuration incluant les étapes d'installation et le 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.
Installer
Section intitulée « Installation »Vous pouvez utiliser notre configuration assistée par IA pour installer le plugin. Ajoutez les skills Capgo à votre outil d'IA avec la commande suivante :
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUtilisez ensuite le prompt suivant :
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 une installation manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à chaque plateforme ci-dessous :
bun add @capgo/capacitor-network-diagnosticsbunx cap syncImporter
Section intitulée « Import »import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Démarrage rapide
Section intitulée « Démarrage rapide »import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.getNetworkStatus();console.log(result);Exemple : testUrl
Section intitulée « Exemple : testUrl »import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.testUrl({ url: 'https://example.com' });console.log(result);Exemple : testPort
Section intitulée « Exemple : testPort »import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.testPort({ host: 'example.com', port: 8080,});console.log(result);Erreurs courantes
Section intitulée « Erreurs courantes »- Sync native : exécuter
bunx cap syncaprès les mises à jour du plugin. - Source de vérité : fiez-vous
src/definitions.tsau repo GitHub.
Générer un rapport de diagnostic complet
Section intitulée « Générer un rapport de diagnostic complet »runDiagnostics est le moyen le plus rapide 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 flags exacts dépendent de la plateforme. Android peut signaler l'état de la connexion internet validée et du portail captif. iOS expose le statut du chemin, le type d'interface, les chemins coûteux et les chemins contraints via Network.framework.
Tester la connectivité à API
Section intitulée « Tester l'accessibilité 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);}Utilisez un véritable endpoint de santé de votre backend. Une vérification faite uniquement dans le navigateur peut être faussée par la WebView, le CORS, un proxy ou le comportement d'un portail captif, alors que ce plugin utilise les couches réseau natives.
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);C'est utile lorsqu'un point d'accès Wi-Fi bloque les ports non standard, MQTT, des passerelles personnalisées ou un backend privé, tout en laissant la navigation normale possible.
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);À utiliser lorsque les proxys ou les portails captifs autorisent les pages HTTPS mais bloquent les requêtes de mise à niveau WebSocket.
Mesurer la vitesse de téléchargement
Section intitulée « Mesurer la vitesse de téléchargement »const speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);Utilisez votre propre endpoint de fichier statique pour que le résultat reflète le chemin réseau utilisé par votre application.
Estimer la perte de paquets
Section intitulée « Estimer la perte de paquets »const 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 disponible dans les applications de l'App Store et du Play Store. Cette méthode mesure la perte de paquets au niveau applicatif en répétant des sondes TCP ou HTTP.
Fallback web
Section intitulée « Fallback web »L’implémentation web est destinée au développement. Les navigateurs ne peuvent pas ouvrir de sockets TCP bruts, et les vérifications d’URL peuvent être limitées par CORS. Utilisez des builds iOS ou Android pour un diagnostic réseau fiable.