Mulai
Panduan pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini yang dapat dicopy.
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.
Instal
Bab berjudul “Instal”Kamu bisa menggunakan Pengaturan Bantu AI untuk menginstal plugin. Tambahkan Capgo kemampuan ke alat AI kamu menggunakan perintah berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Jika Anda lebih suka Manual Setup, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:
npm install @capgo/capacitor-network-diagnosticsnpx cap syncImport
Judul bagian “Import”import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Jalankan laporan diagnostik lengkap
Judul bagian “Jalankan laporan diagnostik lengkap”runDiagnostics adalah cara tercepat untuk mengumpulkan laporan dukungan untuk pengguna di jaringan yang terbatas.
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);Pantau status jaringan saat ini
Judul bagian: “Periksa status jaringan saat ini”const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);console.log(status.connectionType);console.log(status.internetReachable);console.log(status.captivePortal);Flag yang tepat bergantung pada platform. Android dapat melaporkan status internet yang diverifikasi dan portal kaptif. iOS melaporkan status jalur, jenis antarmuka, jalur mahal, dan jalur terbatas melalui Network.framework.
Uji API ketersediaan
Judul bagian: “Uji API ketersediaan”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);}Pilih endpoint kesehatan yang nyata dari backend Anda. Periksaan browser hanya dapat disembunyikan oleh WebView, CORS, proxy, atau perilaku portal kaptif, sedangkan plugin ini menggunakan jaringan native.
Uji porta TCP
Judul bagian: “Uji porta TCP”const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Fitur ini berguna ketika titik akses Wi-Fi memblokir porta non-standar, MQTT, gateway kustom, atau backend pribadi sementara masih memungkinkan browsing normal.
Uji koneksi WebSocket
Judul Bagian: “Test Koneksi WebSocket”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Pakai ini ketika proxy atau portal tertangkap membiarkan halaman HTTPS tetapi memblokir permintaan upgrade WebSocket.
Pengukuran Kecepatan Download
Judul Bagian: “Pengukuran Kecepatan Download”const speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);Pakai endpoint file statis milikmu sendiri agar hasilnya mencerminkan jalur jaringan yang dibutuhkan aplikasi.
Pengukuran Kerugian Paket
Judul Bagian: “Pengukuran Kerugian Paket”const loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);Ping ICMP mentah tidak dapat dipindahkan ke aplikasi App Store dan Play Store. Metode ini mengukur kerugian paket pada tingkat aplikasi dengan mengulang probe TCP atau HTTP.
Pengganti Web
Judul bagian “Fallback web”Implementasi web ini dimaksudkan untuk pengembangan. Browser tidak dapat membuka soket TCP mentah, dan pengecekan URL mungkin terbatas oleh CORS. Gunakan build iOS atau Android untuk mendukung diagnostik nyata.