Inizia
Copiare un prompt di impostazione 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.
Installare
Sezione intitolata “Installare”You potete utilizzare la nostra configurazione assistita da AI per installare il plugin. Aggiungi le Capgo abilità al tuo strumento AI utilizzando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi utilizza la seguente richiesta:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Se preferite la configurazione manuale, installate il plugin eseguendo i seguenti comandi e seguite le istruzioni specifiche della piattaforma riportate di seguito:
npm install @capgo/capacitor-network-diagnosticsnpx cap syncimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Esegui un rapporto diagnostico completo
Sezione intitolata “Esegui un completo rapporto diagnostico”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. Android può riferire lo stato di internet validato e di porta cattiva. iOS riferisce lo stato del percorso, il tipo di interfaccia, i percorsi costosi e i percorsi limitati attraverso 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);}Usa un endpoint di salute reale dal tuo backend. Un controllo eseguito solo dal browser può essere nascosto da WebView, CORS, proxy o comportamento di porta cattiva, mentre questo plugin utilizza networking nativo.
Testa un porto TCP
Sezione intitolata “Testa 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 navigazione normale.
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 le porte captive 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 per ottenere un risultato che 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 non elaborato non è portabile negli app Store e negli app Play Store. Questo metodo misura la perdita di pacchetti a livello di applicazione ripetendo TCP o HTTP probe.
Web fallback
Sezione intitolata “Fallback web”L'implementazione web è destinata allo sviluppo. I browser non possono aprire socket TCP non elaborati e le verifiche di URL possono essere limitate da CORS. Utilizzare le build iOS o Android per diagnostiche di supporto reali.