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 competenze 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 corrente
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);I flag esatti dipendono dalla piattaforma. Android può riferire lo stato di rete internet e di porta cattiva. iOS riferisce lo stato della strada, il tipo di interfaccia, le strade costose e le strade limitate 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. Una verifica eseguita solo dal browser può essere nascosta 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 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 crudo 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 raw e le verifiche di URL possono essere limitate da CORS. Utilizzare le build di iOS o Android per supportare i diagnostici reali.