Using @capgo/capacitor-network-diagnostics
Capacitor アプリで Wi-Fi の制限、キャプティブ ポータル、ブロックされたポート、 WebSocket の失敗、ダウンロードの遅延、パケットの喪失をデバッグするために必要なネイティブ ネットワーク診断
インストール
npm install @capgo/capacitor-network-diagnostics
npx cap sync
What This Plugin Exposes
getNetworkStatus- ネイティブ接続タイプとプラットフォームネットワークフラグを読み取るtestUrl- HTTPまたはHTTPS URLの到達可能性を確認し、ステータスcodeと遅延を取得するtestPort- ホストとポートにネイティブのTCPソケットを開くtestWebSocket-ws://またはwss://ハンドシェイク。testDownloadSpeed- ネイティブダウンロードスループットを測定します。testPacketLoss- 再帰的なプローブを使用してアプリケーションレベルのパケットロスを推定します。runDiagnostics- 組み合わせ診断を実行し、問題リストを返します。
例の使用方法
import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';
const report = await NetworkDiagnostics.runDiagnostics({
urls: [{ url: 'https://api.example.com/health' }],
ports: [{ host: 'api.example.com', port: 443 }],
websockets: [{ url: 'wss://ws.example.com/socket' }],
packetLoss: {
mode: 'tcp',
host: 'api.example.com',
port: 443,
count: 10,
},
});
console.log(report.status);
console.log(report.issues);
サポートワークフロー
影響を受けたユーザーに、問題のあるWi-Fiまたはアクセスポイントに接続されているときに診断を実行するよう求めます。サポートに結果を送信します:
- 接続タイプとOSネットワークフラグ
- 失敗したURL、ポート、またはWebSocketエンドポイント
- ダウンロードMbps
- パケットロス率
- ネイティブエラーコードとメッセージ
iOSとAndroidアプリでは、RAW ICMPパケットの送信が非ポータブルなので、パケットロスは繰り返しTCPまたはHTTPプローブで測定されます。
フルリファレンス
- GitHub: https://github.com/Cap-go/capacitor-network-diagnostics/
- ドキュメント: /docs/plugins/network-diagnostics/