__CAPGO_KEEP_0__
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 지시를 복사하세요.
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.
설치
설치 제목AI-Assisted Setup을 사용하여 플러그인을 설치할 수 있습니다. AI 도구에 Capgo 기능을 추가하려면 다음 명령어를 사용하세요:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins만약 Manual Setup을 선호한다면, 플러그인을 설치하기 위해 다음 명령어를 실행하고 아래에 플랫폼에 따라 설명된 지침을 따르세요:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.설치
npm install @capgo/capacitor-network-diagnosticsnpx cap syncImport
'Import'라는 제목의 섹션import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';전체 진단 보고서 실행
'전체 진단 보고서 실행'이라는 제목의 섹션runDiagnostics 사용자가 제한된 네트워크에서 지원 보고서를 수집하기 위한 가장 빠른 방법입니다.
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);현재 네트워크 상태 확인
'현재 네트워크 상태 확인'이라는 제목의 섹션const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);console.log(status.connectionType);console.log(status.internetReachable);console.log(status.captivePortal);The exact flags depend on the platform. Android can report validated internet and captive portal state. iOS reports path status, interface type, expensive paths, and constrained paths through Network.framework.
API 네트워크 접근성을 테스트하세요
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);}실제 backend에서 제공하는 건강한 엔드포인트를 사용하세요. 브라우저만으로 체크하는 것은 WebView, CORS, 프록시, 또는 캡티브 포털 동작으로 숨겨질 수 있지만, 이 플러그인은 네이티브 네트워킹을 사용합니다.
TCP 포트를 테스트하세요
__CAPGO_KEEP_0__ TCP 포트 테스트const port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Wi-Fi 접근점이 비표준 포트, MQTT, 커스텀 게이트웨이, 또는 개인 backend를 차단하는 경우에도 일반적인 브라우징이 허용되는 경우 유용합니다.
웹소켓 연결성을 테스트하세요
__CAPGO_KEEP_0__ 웹소켓 연결성 테스트const socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);HTTPS 페이지를 업그레이드하는 WebSocket 요청이 차단되지만 프록시 또는 캡티브 게이트웨이가 HTTPS 페이지를 허용하는 경우 사용하세요.
다운로드 속도 측정
다운로드 속도 측정const speed = await NetworkDiagnostics.testDownloadSpeed({ url: 'https://speed.example.com/5mb.bin', maxBytes: 5 * 1024 * 1024, timeoutMs: 30000,});
console.log(speed.mbps);자신의 정적 파일 엔드포인트를 사용하여 결과가 앱이 필요로 하는 네트워크 경로를 반영하도록 하세요.
패킷 손실 추정
패킷 손실 추정const loss = await NetworkDiagnostics.testPacketLoss({ mode: 'tcp', host: 'api.example.com', port: 443, count: 10, timeoutMs: 3000, intervalMs: 250,});
console.log(loss.lossPercent);App Store 및 Play Store 앱에서 Raw ICMP ping이 포팅되지 않습니다. 이 방법은 TCP 또는 HTTP 프로브를 반복하여 애플리케이션 수준의 패킷 손실을 측정합니다.
웹 백업
웹 백업웹 implementation은 개발을위한 것입니다. 브라우저는 Raw TCP 소켓을 열 수 없으며 URL 확인은 CORS 제한으로 제한될 수 있습니다. iOS 또는 Android 빌드를 사용하여 실제 지원 진단을 위해.