没有一份按浏览器大版本列出的支持清单:网站脚本按 ES2020 编写,客户端和系统要求以各包的声明为准。各端能力差异的完整对照在 SDK 总览与支持矩阵。
网站脚本
@webcount/tracker 的版本是 1.0.0,产物是 w.js。TypeScript 目标是 ES2020,面向带 DOM 的环境。脚本使用 History API(pushState、replaceState、popstate),发送时优先 navigator.sendBeacon,否则 fetch 且 keepalive。没有单独的降级包去覆盖不提供这些能力的浏览器。
Vue、Nuxt、React、Next.js 没有独立的统计包,复用这段脚本。hash 路由要自己打开 data-hash,见 页面浏览与 SPA。
客户端 SDK
| 平台 | 版本 | 最低要求与安装 |
|---|---|---|
| 微信 / 支付宝 / 抖音小程序 | 0.1.0 | npm 包 @webcount/miniprogram,入口分别为 wx、my、tt。开发者工具需能构建 npm |
| Android | 0.1.0 | com.webcount:android,minSdk 21 |
| iOS | 0.1.0 | Swift 包 WebCount,iOS 13 |
| HarmonyOS | 0.1.0 | @webcount/harmony。控制台代码页注明 API 12+ |
| React Native | 0.1.0 | @webcount/react-native,peer 为 react-native 0.72 及以上 |
| Flutter | 0.1.0 | webcount_flutter,Dart 3.0 及以上,Flutter 3.10 及以上 |
| uni-app | 0.1.0 | @webcount/uni-app。小程序目标用小程序核心,App 目标取决于适配层 |
小程序、HarmonyOS、React Native、uni-app 共用带本地队列的 JavaScript 核心,会读远程配置里的最低 SDK 版本:低于该版本就停止上报。Android 与 iOS 的 0.1.0 不读远程配置,这条最低版本管不到它们。远程配置见 采集控制与远程配置。
非网站端必须先在控制台登记应用标识,和初始化时的 appId 一致,否则上报被静默拒收。
服务端 SDK
这些包是 POST /api/v1/track 的薄封装,库版本标识 1.0.0。
| 语言 | 调用方式 | 运行要求 |
|---|---|---|
| Node.js | @webcount/node 的 WebCount | 代码使用全局 fetch,需要 Node.js 18 及以上 |
| PHP | Webcount\WebCount | 构造函数使用 PHP 8 的属性提升,并依赖 curl |
| Python | webcount.WebCount | 仅标准库。源码使用 from _,对应 Python 3.7 及以上 |
| Java | com.webcount.WebCount | java.net.http.HttpClient,需要 Java 11 及以上 |
| Go | package webcount | 标准库 net/http |
密钥范围要有 track:write。协议字段以 SDK 总览与支持矩阵 为准,不要把浏览器采集的字段原样塞进 Track。
接口
HTTP API 的全局前缀是 /api/v1(setGlobalPrefix)。没有并行的 v2 前缀。开放文档声明的版本是 OpenAPI 3.0.3、info 版本 1.0.0。查询、导出和管理接口的认证见 API 概览 与 认证与密钥。
采集路径是 /api/v1/pulse,服务端事件是 /api/v1/track 与 /api/v1/server/events。两条服务端路径不要混用:Track 按事件对象入库,server events 走访问日志那一路。