Einstieg
Eine Einrichtungsanleitung mit Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
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.
Installieren
Abschnitt mit dem Titel „Installieren“Sie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie die Capgo-Fähigkeiten zu Ihrem AI-Tool hinzu, indem Sie den folgenden Befehl ausführen:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsVerwenden Sie dann den folgenden Prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Wenn Sie die manuelle Einrichtung bevorzugen, installieren Sie das Plugin, indem Sie die folgenden Befehle ausführen und die unten aufgeführten plattform-spezifischen Anweisungen befolgen:
npm install @capgo/capacitor-network-diagnosticsnpx cap syncimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Ein umfassendes Diagnoseprotokoll ausführen
Abschnitt mit dem Titel „Ein umfassendes Diagnoseprotokoll ausführen“runDiagnostics ist der schnellste Weg, um ein Supportprotokoll für einen Benutzer auf einem eingeschränkten Netzwerk zu sammeln.
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);Aktuellen Netzwerkstatus überprüfen
Abschnitt mit dem Titel „Aktuellen Netzwerkstatus überprüfen“const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);console.log(status.connectionType);console.log(status.internetReachable);console.log(status.captivePortal);The genauen Flags hängen von der Plattform ab. Android kann das Validierungsergebnis des Internetaccess und des Captive-Portal-Zustands melden. iOS meldet den Pfadstatus, den Schnittstellen-Typ, teure Pfade und eingeschränkte Pfade über Network.framework.
Test API Erreichbarkeit
Sektion mit dem Titel “Test API Erreichbarkeit”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);}Verwenden Sie einen echten Gesundheitsendpunkt von Ihrem Backend. Ein Browser-Check kann durch WebView, CORS, Proxy oder Captive-Portal-Verhalten versteckt werden, während dieser Plugin native Netzwerke verwendet.
Testen Sie einen TCP-Port
Sektion mit dem Titel “Testen Sie einen TCP-Port”const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Dies ist nützlich, wenn ein Wi-Fi-Zugangspunkt nichtstandardmäßige Ports, MQTT, benutzerdefinierte Gateways oder einen privaten Backend blockiert, während normalen Browsing erlaubt ist.
Testen Sie die WebSocket-Verbindung
Sektion mit dem Titel “Testen Sie die WebSocket-Verbindung”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Wenn Proxies oder Captive Portale HTTPS-Seiten zulassen, aber WebSocket-Upgrade-Anforderungen blockieren.
Herunterladegeschwindigkeit messen
Sektion: Herunterladegeschwindigkeit messenconst speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);Verwenden Sie Ihren eigenen statischen Dateien-Endpunkt, damit das Ergebnis den Netzwerkweg widerspiegelt, den Ihre App benötigt.
Paketverlust schätzen
Sektion: Paketverlust schätzenconst loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);Die direkte ICMP-Ping ist in App Store- und Play Store-Anwendungen nicht portable. Diese Methode misst den Anwendungslevel-Paketverlust, indem TCP- oder HTTP-Proben wiederholt werden.
Fallback für Web
Sektion: Fallback für WebDie Web-Implementierung ist für die Entwicklung gedacht. Browser können keine rohen TCP-Sockets öffnen und URL-Überprüfungen können durch CORS-Beschränkungen limitiert sein. Verwenden Sie iOS- oder Android-Builds für echte Diagnoseunterstützung.