跳转至正文

网络诊断 Capacitor 插件

运行原生网络诊断,测试 URL 可达性、TCP 端口、WebSocket 握手、网速及丢包率

安装

bun add @capgo/capacitor-network-diagnostics bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-network-diagnostics
  • pnpm add @capgo/capacitor-network-diagnostics
  • yarn add @capgo/capacitor-network-diagnostics

指南

如何在 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 探测来测量的。

完整参考

常见问题

Network Diagnostics 插件常见问题

如何在 Capacitor 应用中安装 Network Diagnostics 插件?

运行 "bun add @capgo/capacitor-network-diagnostics"(或 "npm install @capgo/capacitor-network-diagnostics"),然后运行 "bunx cap sync",让 iOS 和 Android 项目加载原生 code。再在应用 code 中从 "@capgo/capacitor-network-diagnostics" 导入。

@capgo/capacitor-network-diagnostics 是否支持 React、Vue 和 Angular?

是的。Network Diagnostics 是一个 Capacitor 包,因此它适用于任何在 Capacitor 中运行的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 和纯 JavaScript。

@capgo/capacitor-network-diagnostics 支持哪个版本的 Capacitor?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-network-diagnostics 是免费开源的吗?

是的。code 的源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-network-diagnostics/,并且可从 npm 免费安装该包。欢迎提交 Bug 报告和 Pull Request。

我可以在不经过 App Store 审核的情况下,更新使用了 Network Diagnostics 的 code 吗?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待 App Store 审核,即可快速发布 Network Diagnostics 的更新

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo