Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
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.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
bunx 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 memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
bun add @capgo/capacitor-network-diagnosticsbunx cap syncimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';Mulai cepat
Bagian berjudul “Mulai cepat”import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.getNetworkStatus();console.log(result);Contoh: testUrl
Bagian berjudul “Contoh: testUrl”import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.testUrl({ url: 'https://example.com' });console.log(result);Contoh: testPort
Bagian berjudul “Contoh: testPort”import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.testPort({ host: 'example.com', port: 8080,});console.log(result);Kesalahan umum
Bagian berjudul “Kesalahan umum”- Sinkronisasi Native: jalankan
bunx cap syncsetelah upgrade plugin. - Sumber kebenaran tunggal: percayai
src/definitions.tsdi repo GitHub.
Jalankan laporan diagnostik lengkap
Bagian berjudul “Jalankan laporan diagnostik lengkap”runDiagnostics adalah cara tercepat untuk mengumpulkan laporan dukungan bagi pengguna di jaringan 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);Periksa status jaringan saat ini
Bagian berjudul “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 digunakan bergantung pada platformnya. Android dapat melaporkan status internet yang tervalidasi dan captive portal. iOS melaporkan status path, tipe interface, expensive paths, dan constrained paths melalui Network.framework.
Tes konektivitas API
Bagian berjudul “Tes konektivitas API”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);}Gunakan endpoint health yang asli dari backend Anda. Pengecekan via browser bisa terhalang oleh WebView, CORS, proxy, atau perilaku captive portal, sedangkan plugin ini menggunakan native networking.
Tes port TCP
Bagian berjudul “Tes port TCP”const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Ini berguna saat access point Wi-Fi memblokir port non-standar, MQTT, custom gateway, atau backend privat, namun tetap mengizinkan browsing normal.
Tes konektivitas WebSocket
Bagian berjudul “Tes konektivitas WebSocket”const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);Gunakan ini saat proxy atau captive portal mengizinkan halaman HTTPS tetapi memblokir permintaan WebSocket upgrade.
Ukur kecepatan download
Bagian berjudul “Ukur kecepatan download”const speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);Gunakan endpoint file statis milik Anda sendiri agar hasilnya mencerminkan jalur jaringan yang dibutuhkan aplikasi Anda.
Estimasi packet loss
Bagian berjudul “Estimasi packet loss”const loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);Raw ICMP ping tidak dapat digunakan pada aplikasi App Store dan Play Store. Metode ini mengukur packet loss di level aplikasi dengan mengulang probe TCP atau HTTP.
Fallback web
Bagian berjudul “Web fallback”Implementasi web ditujukan untuk pengembangan. Browser tidak bisa membuka raw TCP socket, dan pengecekan URL mungkin dibatasi oleh CORS. Gunakan build iOS atau Android untuk diagnostik support yang sebenarnya.