はじめに
インストールステップとフルマークダウンガイドを含む設定コマンドをコピーしてください。
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 セットアップを使用してプラグインをインストールできます。次のコマンドを使用して、AI ツールに Capgo スキルを追加します。
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins次のプロンプトを使用してください。
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.Manual セットアップを使用する場合は、以下のコマンドを実行して、プラットフォーム固有の指示に従ってください。
npm install @capgo/capacitor-network-diagnosticsnpx cap syncインポート
インポート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);プラットフォームによっては、正しいフラグが異なります。Androidは、有効なインターネットとキャプティブポータル状態を報告できます。iOSは、パス状態、インターフェイスタイプ、コストのかかるパス、および制約されたパスを通じて 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);}実際のヘルスエンドポイントからバックエンドを使用します。ブラウザのみのチェックは、WebView、CORS、プロキシ、またはキャプティブポータル動作によって隠れます。 しかし、このプラグインはネイティブネットワーキングを使用します。
TCPポートをテストする
「TCPポートをテストする」セクションconst port = await NetworkDiagnostics.testPort({ host: 'api.example.com', port: 443, timeoutMs: 3000,});
console.log(port.open, port.durationMs);Wi-Fiアクセスポイントが標準以外のポート、MQTT、カスタムゲートウェイ、またはプライベートバックエンドをブロックしながら通常のブラウジングを許可している場合に便利です。
WebSocket接続性をテストする
「WebSocket接続性をテストする」セクションconst socket = await NetworkDiagnostics.testWebSocket({ url: 'wss://ws.example.com/socket', timeoutMs: 5000,});
console.log(socket.open, socket.statusCode);プロキシまたはキャプティブポータルがHTTPSページを許可している場合に、WebSocketアップグレード要求をブロックする場合に使用してください。
ダウンロード速度を測定する
「ダウンロード速度を測定する」セクション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);「Raw ICMP ping」はApp StoreおよびPlay Storeアプリでは移植性が低く、実行可能なファイルでは実行できません。この方法では、TCPまたはHTTPプローブを繰り返して、実行可能ファイルレベルのパケット損失を測定します。
Web fallback
「Web fallback」セクションWeb実装は開発用に設計されています。ブラウザでは、RAW TCPソケットを開くことはできず、URLチェックはCORSによって制限される可能性があります。iOSまたはAndroidビルドを使用して、実際のサポート診断にアクセスしてください。