指南
如何在 Capacitor 中使用 Network Diagnostics
使用 @capgo/capacitor-network-diagnostics
为 Capacitor 应用提供原生网络诊断功能,用于调试受限 Wi-Fi、强制网络门户、端口拦截、WebSocket 失败、下载缓慢及丢包等问题。
安装
npm install @capgo/capacitor-network-diagnostics
npx cap sync
插件暴露的内容
getNetworkStatus- 读取原生连接类型及平台网络标志。testUrl- 检查 HTTP 或 HTTPS URL 的连通性,返回状态 code 及延迟。testPort- 向指定主机和端口打开原生 TCP socket。testWebSocket- 验证ws://或wss://握手。testDownloadSpeed- 测量原生 download 吞吐量。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)
- 丢包率
- 原生错误代码及信息
由于原始 ICMP ping 在 iOS 和 Android 应用中不具备移植性,因此丢包率是通过重复的 TCP 或 HTTP 探测来测量的。
完整参考
- GitHub: https://github.com/Cap-go/capacitor-network-diagnostics/
- 文档:/docs/plugins/network-diagnostics/