Inizia
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo 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.
Installa
Sezione intitolata “Installa”Puoi utilizzare la nostra configurazione assistita dall'IA per installare il plugin. Aggiungi le Capgo abilità al tuo strumento di AI utilizzando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi utilizza il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Se preferisci l'installazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:
npm install @capgo/capacitor-network-diagnosticsnpx cap syncImporta
Sezione intitolata “Importa”import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Esegui un rapporto diagnostico completo
Sezione intitolata “Esegui un rapporto diagnostico completo”runDiagnostics è il modo più veloce per raccogliere un rapporto di supporto per un utente su una rete limitata.
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);Verifica lo stato della rete attuale
Sezione intitolata “Verifica lo stato della rete attuale”const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);console.log(status.connectionType);console.log(status.internetReachable);console.log(status.captivePortal);Le bandiere esatte dipendono dalla piattaforma. L'Android può riferire lo stato di internet e di porta cattiva. L'iOS riferisce lo stato di percorso, il tipo di interfaccia, le percorrenze costose e le percorrenze con restrizioni tramite Network.framework.
Testa la API raggiungibilità
Sezione intitolata “Testa la API raggiungibilità”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);}Utilizza un endpoint di salute reale dal tuo backend. Un controllo esclusivamente del browser può essere nascosto da WebView, CORS, proxy o comportamento di porta cattiva, mentre questo plugin utilizza networking nativo.
Testa la connettività di un porto TCP
Sezione intitolata “Testa la connettività di un porto TCP”const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Questo è utile quando un punto di accesso Wi-Fi blocca i porti non standard, MQTT, gateway personalizzati o un backend privato mentre consente ancora la normale navigazione.
Testa la connettività WebSocket
Sezione intitolata “Testa la connettività WebSocket”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Usa questo quando i proxy o i portali di accesso cattivo consentono le pagine HTTPS ma bloccano le richieste di aggiornamento WebSocket.
Misura la velocità di download
Sezione intitolata “Misura la velocità di download”const speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);Usa il tuo endpoint di file statico personalizzato in modo che il risultato rifletta il percorso di rete che il tuo app richiede.
Stima la perdita di pacchetti
Sezione intitolata “Stima la perdita di pacchetti”const loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);Il ping ICMP raw non è portabile nelle app di App Store e Play Store. Questo metodo misura la perdita di pacchetti a livello di applicazione ripetendo le probe TCP o HTTP.
Fallback web
Sezione intitolata “Fallback web”L'implementazione web è destinata allo sviluppo. I browser non possono aprire socket TCP crudi e le verifiche di URL possono essere limitate da CORS. Utilizzare le build di iOS o Android per supporto diagnostico reale.