Anfangen
App Store
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 KI-Tool hinzu, indem Sie die folgende Befehlszeile verwenden:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsDann verwenden Sie die folgende Anfrage:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Wenn Sie eine manuelle Einrichtung bevorzugen, installieren Sie das Plugin, indem Sie die folgenden Befehle ausführen und die unten angegebenen Plattform-spezifischen Anweisungen befolgen:
npm install @capgo/capacitor-network-diagnosticsnpx cap syncImportieren
Abschnitt mit dem Titel „Importieren“import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Durchführen eines vollständigen Diagnoseberichts
Abschnitt mit dem Titel „Durchführen eines vollständigen Diagnoseberichts“runDiagnostics ist der schnellste Weg, um einen Supportbericht 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);Überprüfen Sie den aktuellen Netzwerkstatus
Abschnitt mit dem Titel “Überprüfen Sie den aktuellen Netzwerkstatus”const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);console.log(status.connectionType);console.log(status.internetReachable);console.log(status.captivePortal);Die genauen Flags hängen von der Plattform ab. Android kann das Validierte Internet- und Captive-Portal-Zustand melden. iOS meldet den Pfadstatus, den Schnittstellen-Typ, teure Wege und eingeschränkte Wege über Network.framework.
Testen Sie die Erreichbarkeit von API
Abschnitt mit dem Titel “Erreichbarkeit von API testen”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-only-Check kann durch WebView, CORS, Proxy oder Captive-Portal-Verhalten versteckt werden, während dieser Plugin native Netzwerke verwendet.
Testen Sie eine TCP-Port
Abschnitt mit dem Titel “Eine TCP-Port testen”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 nicht-standardmäßige Ports, MQTT, benutzerdefinierte Gateways oder einen privaten Backend blockiert, während normalen Browsing erlaubt ist.
Testen Sie die WebSocket-Verbindung
Abschnitt mit dem Titel “WebSocket-Verbindung testen”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Verwenden Sie diesen, wenn Proxys oder Captive-Portale HTTPS-Seiten zulassen, aber WebSocket-Upgrade-Anforderungen blockieren.
Herunterladegeschwindigkeit messen
Abschnitt mit dem Titel “Herunterladegeschwindigkeit messen”const 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 die Netzwerk-Pfad Ihres Apps widerspiegelt, die benötigt wird.
Paketverlust schätzen
Abschnitt mit dem Titel “Paketverlust schätzen”const loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);Roter ICMP-Ping ist in App-Store- und Play-Store-Apps nicht portabel. Diese Methode misst Anwendungs-Ebene-Paketverlust, indem TCP- oder HTTP-Proben wiederholt werden.
Web-Fallback
Abschnitt mit dem Titel “Web-Fallback”Die Web-Implementierung ist für die Entwicklung gedacht. Browser können keine Roh-TCP-Sockets öffnen und die URL-Überprüfungen können durch CORS-Beschränkungen eingeschränkt sein. Verwenden Sie iOS- oder Android-Builds für echte Diagnoseunterstützung.