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.
Installazione
Sezione intitolata “Installazione”Puoi utilizzare la nostra configurazione assistita dall'IA per installare il plugin. Aggiungi le Capgo abilità al tuo strumento di IA 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 la configurazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche del tuo platform sotto:
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 corrente”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 rete internet e di porta cattiva. iOS riferisce lo stato della strada, il tipo di interfaccia, le strade costose e le strade limitate 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 reti native.
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 le porte captive consentono le pagine HTTPS ma bloccano le richieste di aggiornamento WebSocket.
Misura la velocità di download
Sottosezione 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 poter avere il risultato che rifletta il percorso di rete che il tuo app richiede.
Stima la perdita di pacchetti
Sottosezione 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);La ping ICMP 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
Sottosezione intitolata “Fallback web”Il fallback web è destinato allo sviluppo. I browser non possono aprire socket TCP raw e le verifiche di URL possono essere limitate da CORS. Utilizza le build iOS o Android per avere supporto diagnostico reale.