スタートガイド
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
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アシストによるセットアップでプラグインをインストールできます。以下のコマンドを使用して、お使いのAIツールに Capgo のスキルを追加してください:
bunx 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.手動セットアップを希望する場合は、以下のコマンドを実行してプラグインをインストールし、下記のプラットフォーム別の手順に従ってください:
bun add @capgo/capacitor-network-diagnosticsbunx cap syncインポート
「インポート」セクションimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';クイックスタート
「クイックスタート」セクションimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.getNetworkStatus();console.log(result);例: testUrl
「Example: testUrl」セクションimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.testUrl({ url: 'https://example.com' });console.log(result);例: testPort
「Example: testPort」セクションimport { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const result = await NetworkDiagnostics.testPort({ host: 'example.com', port: 8080,});console.log(result);よくある落とし穴
「よくある落とし穴」セクション- ネイティブ同期: 実行
bunx cap syncプラグインのアップグレード後。 - 信頼できる情報源: 信頼
src/definitions.tsGitHub リポジトリ内。
総合診断レポートを実行する
「完全な診断レポートを実行する」セクション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では、パスのステータス、インターフェースの種類、従量制(expensive)パス、および制約付き(constrained)パスを報告します。 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);App StoreやPlay Storeのアプリでは、生のICMP pingは利用できません。このメソッドは、TCPまたはHTTPプローブを繰り返すことで、アプリケーションレベルのパケットロスを測定します。
Webフォールバック
「Webフォールバック」セクションWeb版の実装は開発用です。ブラウザはraw TCPソケットを開けず、URLチェックはCORSの制限を受ける場合があります。実際のサポート診断にはiOSまたはAndroidのビルドを使用してください。