Getting Started
Kopiere einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen 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.
Installieren
Abschnitt mit dem Titel ‘Installieren’Sie können unser AI-gestütztes Setup verwenden, um das Plugin zu installieren. Fügen Sie die Capgo-Fähigkeiten zu Ihrem KI-Tool hinzu, indem Sie folgenden Befehl ausführen:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsDann verwenden Sie die folgende Anweisung:
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 angegebenen Plattform-spezifischen Anweisungen befolgen:
bun add @capgo/capacitor-network-diagnosticsbunx cap syncImportieren
Sektion mit dem Titel „Importieren“import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Einen vollständigen Diagnosebericht ausführen
Sektion mit dem Titel „Einen vollständigen Diagnosebericht ausführen“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
Überprüfen Sie den aktuellen Netzwerkstatusconst 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 Pfade und eingeschränkte Pfade über Network.framework.
Testen Sie die Erreichbarkeit von API
Section titled “Test API reachability”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. Eine Browser-Überprüfung kann durch WebView, CORS, Proxy oder Captive-Portal-Verhalten versteckt werden, während dieser Plugin native Netzwerke verwendet.
Testen Sie einen TCP-Port
Abschnitt 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.
WebSocket-Verbindung testen
Abschnitt: WebSocket-Verbindung testenconst socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Verwenden Sie dies, wenn Proxys oder Captive Portale HTTPS-Seiten zulassen, aber WebSocket-Upgrade-Anfragen blockieren.
Herunterladegeschwindigkeit messen
Abschnitt: 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 die Netzwerk-Pfad Ihres Apps widerspiegelt.
Paketverlust schätzen
Abschnitt: 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);Raw ICMP Ping ist in App Store und Play Store-Anwendungen nicht portable. Diese Methode misst die Anwendungsverlust von Paketen, indem sie TCP- oder HTTP-Proben wiederholt.
Web-Fallback
Abschnitt: "Web-Fallback"Die Web-Implementierung ist für die Entwicklung gedacht. Browser können keine Roh-TCP-Sockets öffnen und URL-Überprüfungen können durch CORS-Beschränkungen eingeschränkt sein. Verwenden Sie iOS- oder Android-Builds für echte Diagnoseunterstützung.