指南
网络诊断教程
使用 @capgo/capacitor-network-diagnostics
为需要调试受限 Wi-Fi、捕获门户、阻塞端口、WebSocket 失败、慢下载和包丢失的 Capacitor 应用提供原生网络诊断功能。
安装
npm install @capgo/capacitor-network-diagnostics
npx cap sync
此插件暴露的内容
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 应用程序中,原始 ICMP ping 不是可移植的,因此使用重复的 TCP 或 HTTP 探测来测量包丢失。
全局参考
- GitHub: https://github.com/Cap-go/capacitor-network-diagnostics/
- 文档:/docs/plugins/network-diagnostics/