Einstieg
Kopieren Sie einen Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline 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 unsere KI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie den Capgo-Fähigkeiten Ihrer KI-Werkzeug mit der folgenden Befehl hinzu:
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 die manuelle Einrichtung bevorzugen, installieren Sie das Plugin, indem Sie die folgenden Befehle ausführen und folgen Sie den unten angegebenen Plattform-spezifischen Anweisungen:
npm install @capgo/capacitor-network-diagnosticsnpx cap syncimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Einen umfassenden Diagnosebericht ausführen
Abschnitt mit dem Titel „Einen umfassenden 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
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 geprüfte Internet- und Captive-Portal-Zustand melden. iOS meldet den Pfadstatus, den Schnittstellen-Typ, teure Pfade und eingeschränkte Pfade über Network.framework.
Test API Erreichbarkeit
Abschnitt 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 realen Health-Endpunkt aus 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 Browsing noch zulässt.
Testen Sie die WebSocket-Verbindung
Abschnitt 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);Wenden Sie sich an diesen, wenn Proxys 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 Dateiendpunkt, damit das Ergebnis die Netzwerkpfade widerspiegelt, die 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);Roter ICMP-Ping ist in App-Store- und Play-Store-Anwendungen nicht portable. Diese Methode misst Anwendungslevel-Paketverlust, indem TCP- oder HTTP-Proben wiederholt werden.
Fallback auf Web
Sektion: Fallback auf WebDie Web-Implementierung ist für die Entwicklung gedacht. Browser können keine roten TCP-Sockets öffnen und URL-Überprüfungen können durch CORS limitiert sein. Verwenden Sie iOS- oder Android-Builds für echte Diagnoseunterstützung.