@dynamic-labs-sdk/react-native-captcha

中文文档
1.51.0发布于 2026/11/11TypeScriptESM + CJS近 30 天下载 2826

Captcha 对使用 Dynamic 的 React 本地应用程序的部件进行挑战 .

中文使用文档
文档目录4 节
  1. 安装
  2. 使用量
  3. 构成部分
  4. 重试挑战

@ 力学- labs- sdk/ 反应- native- captcha

Captcha 对使用 Dynamic 的 React 本地应用程序的部件进行挑战 .

提供自成一体 HCaptchaChallenge 财务报告和审定财务报表 TurnstileChallenge 组件使其提供者的部件在 react-native-webview 并将卡布查的标志还给Message后桥 将标志递给 @dynamic-labs-sdk/client是因为 setCaptchaToken 之前的签入方法 需要captcha.

安装

pnpm add @dynamic-labs-sdk/react-native-captcha

要求数 @dynamic-labs-sdk/client 财务报告和审定财务报表 react-native-webview。 。 。 .

使用量

读取活动提供者和站点密钥 getCaptchaSettings,然后生成匹配的挑战组件.

import { useState } from 'react';
import { View, Button } from 'react-native';
import { CaptchaProviderEnum, getCaptchaSettings, setCaptchaToken } from '@dynamic-labs-sdk/client';
import { HCaptchaChallenge, TurnstileChallenge } from '@dynamic-labs-sdk/react-native-captcha';

function SignInScreen() {
  const [captchaReady, setCaptchaReady] = useState(false);
  const settings = getCaptchaSettings();
  const siteKey = settings?.siteKey;

  const handleSignIn = async () => {
    // sendEmailOTP, auth.wallet.connect, etc.
  };

  if (!settings || !siteKey) {
    return <Button title="Sign in" onPress={handleSignIn} />;
  }

  const handleToken = (token: string) => {
    setCaptchaToken({ captchaToken: token });
    setCaptchaReady(true);
  };

  const Challenge =
    settings.provider === CaptchaProviderEnum.Hcaptcha
      ? HCaptchaChallenge
      : TurnstileChallenge;

  return (
    <View>
      <Challenge
        baseUrl="https://your-whitelisted-origin.com"
        siteKey={siteKey}
        onToken={handleToken}
        onError={(error) => console.error(error.message)}
      />
      <Button title="Sign in" disabled={!captchaReady} onPress={handleSignIn} />
    </View>
  );
}

这个 baseUrl 道具是部件文档的源头。 hCaptcha 和 Turnstile 站点密钥只渲染出白名单主机名, 因此将其设定为您添加到提供者站点配置中的域 .

构成部分

构成部分提供者
HCaptchaChallengeh 卡普察语Name
TurnstileChallenge云花花转弯

两个部分都接受 baseUrl, (中文(简体) ), siteKey, (中文(简体) ), onToken, (中文(简体) ), onError,可选 style 道具 (英语). onToken 当用户解决挑战时放出一次; onError 在挑战错误、 令牌过期 或 WebView 负载失败时放出一次 。 返回错误被键入( R)HCaptchaError 编号 : TurnstileError这样你就可以在 error instanceof HCaptchaError 或检查 error.message。 。 。 .

使用 style 覆盖默认高度、边框半径或其他容器样式的道具,以匹配应用程序的设计.

重试挑战

onToken 财务报告和审定财务报表 onError 每个安装部件最多一次起火。 如果您需要让用户在挑战错误或令牌过期后重试, 请卸载并重载组件, 例如通过递增反应 key数字 :

const [attemptKey, setAttemptKey] = useState(0);

<Challenge
  key={attemptKey}
  baseUrl="https://your-whitelisted-origin.com"
  siteKey={siteKey}
  onToken={handleToken}
  onError={(error) => {
    console.error(error.message);
    setAttemptKey((k) => k + 1);
  }}
/>

版本与发布记录

@dynamic-labs-sdk/react-native-captcha 共发布 44 个版本,首次发布于 2026/08/08;过去 12 个月发布了 44 个版本。

版本发布日期距今
1.51.0latest2026/11/112 天前
1.50.02026/11/058 天前
1.49.12026/11/0210 天前
1.49.02026/10/3113 天前
1.48.02026/10/3014 天前
1.47.02026/10/2816 天前

关于 @dynamic-labs-sdk/react-native-captcha 的常见问题

@dynamic-labs-sdk/react-native-captcha 是什么?

Captcha 对使用 Dynamic 的 React 本地应用程序的部件进行挑战 .

如何安装 @dynamic-labs-sdk/react-native-captcha?

在项目目录运行 npm install @dynamic-labs-sdk/react-native-captcha,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.0.0 || ^19.0.0)、react-native(>=0.73.6)、react-native-webview(>=13.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@dynamic-labs-sdk/react-native-captcha 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dynamic-labs-sdk/react-native-captcha 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dynamic-labs-sdk/react-native-captcha 可以商用吗?

@dynamic-labs-sdk/react-native-captcha 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@dynamic-labs-sdk/react-native-captcha 的下载量有多少?

根据 npm 官方下载统计,@dynamic-labs-sdk/react-native-captcha 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,826 次,日均约 94 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dynamic-labs-sdk/react-native-captcha 还在维护吗?

最新版本 1.51.0 发布于 2026/11/11(2 天前);至今共发布 44 个版本,其中过去 12 个月发布了 44 个;首次发布于 2026/08/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。