Anfangen
__CAPGO_KEEP_0__ ist ein App, die Sie herunterladen können.
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-pluginsVerwenden Sie dann 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 “Testen Sie die Erreichbarkeit von 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);}Verwenden Sie einen realen 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 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 Surfen 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-Anfragen 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 Dateianbieter, damit das Ergebnis die Netzwerkroute widerspiegelt, die Ihre App benötigt.
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);Rohes ICMP-Ping ist in App-Store- und Play-Store-Anwendungen nicht portabel. Diese Methode misst den Anwendungslevel-Paketverlust, indem TCP- oder HTTP-Proben wiederholt werden.
Web-Backup
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 limitiert sein. Verwenden Sie iOS- oder Android-Builds für echte Diagnoseunterstützung.