编程模式
在客户端 JavaScript 中,你可以用 new Cap({ ... }) 创建一个 Cap 实例,再用 solve() 方法求解质询。
js
const cap = new Cap({
apiEndpoint: "https://<your-instance>/<site-key>/",
// 或:apiEndpoint: "/api/",
});
const solution = await cap.solve();
console.log(solution.token);你也可以设置事件监听器:
js
const cap = new Cap({
apiEndpoint: "https://<your-instance>/<site-key>/",
// 或:apiEndpoint: "/api/",
});
cap.addEventListener("progress", (event) => {
console.log(`求解中… 已完成 ${event.detail.progress}%`);
});实际上,Cap 会在内部创建一个隐藏的 cap-widget 元素,用它来求解质询。
支持的方法与参数
支持以下方法:
new Cap({ ... })
创建一个新的 Cap 实例。如果传入第二个参数,会直接使用该元素,而不在内存中新建。
参数
json
{
apiEndpoint: ..., // API 端点,类似验证组件的 `data-cap-api-endpoint` 属性
workers: navigator.hardwareConcurrency || 8 // 使用的 worker 线程数
}cap.solve()
请求并求解一个质询。
输出:{ token }
cap.token
返回最近一次求解得到的令牌
cap.reset()
重置 cap.token
cap.addEventListener(..., function () { ... })
监听 cap 验证组件的事件。参见支持的事件
