# @anvilco/react-signature-frame 中文文档

规范地址：https://npmcn.com/package/%40anvilco/react-signature-frame/

版本：1\.9\.2
npm 元数据更新时间：2025-11-12T22:03:20.445Z
中文译文更新时间：2026-11-06T07:40:26.122Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40anvilco/react-signature-frame
原文对照：https://npmcn.com/package/%40anvilco/react-signature-frame/?lang=original
项目主页：https://github.com/anvilco/react-ui#readme
源码仓库：https://github.com/anvilco/react-ui

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：37.4 kB，20 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \>=16，react-dom \>=16，prop-types ^15\.6\.0
- 首次发布：2020-11-13T02:33:51.923Z
- 最新版本发布：2025-10-30T23:55:36.581Z
- 近 30 天下载量：9826（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：17（近 12 个月 0 个）

## 中文简介

嵌入式 Etch 签名的 AnvilSignatureFrame 反应组件

## 安装

```sh
npm install @anvilco/react-signature-frame
```

也可以使用：`pnpm add @anvilco/react-signature-frame`、`yarn add @anvilco/react-signature-frame`、`bun add @anvilco/react-signature-frame`

## README

# (已删除) AnvilSignalFrame

允许您嵌入的最小组件 [电子签名](https://www.useanvil.com/docs/api/e-signatures) 在您的应用程序中 `iframe`。它将通过签名过程生命周期的回调方式向您提供信息.

见 [现场演示](https://esign-demo.useanvil.com/) 和开源 [演示仓库](https://github.com/anvilco/anvil-e-signature-api-node-example) 以用法为例.

![image](https://user-images.githubusercontent.com/26425671/101393358-d7590380-387b-11eb-827c-5041709a612a.png)

## 安维尔是什么?

[安维尔](https://www.useanvil.com/developers) 为所有文件提供方便的API.

1.  [PDF 填补 API](https://www.useanvil.com/products/pdf-filling-api/) - 填写一个PDF模板,其中包含网络请求和结构化的JSON数据.
2.  [PDF 生成 API](https://www.useanvil.com/products/pdf-generation-api/) - 发送标记下来或HTML和Anvil会把它变成PDF.
3.  [Etch 带有 API 的 E 签名](https://www.useanvil.com/products/etch/) - 可自定义的、可嵌入的、带有API的电子签名平台,以控制签名过程的端到端.
4.  [工作流量(w/ API)](https://www.useanvil.com/products/workflows/) - Webforms + PDF + E- sign 带有强大的无码构建器. 轻松地收集结构化数据,生成PDF,并请求签名.

学着点 [Anvil 开发者页面](https://www.useanvil.com/developers)。 。 。 .

## 使用量

```sh
yarn add @anvilco/react-signature-frame
```

```sh
npm install @anvilco/react-signature-frame
```

```js
import AnvilSignatureFrame from '@anvilco/react-signature-frame'

<AnvilSignatureFrame
  signURL={signURL}
  scroll="smooth"
  onLoad={() => setLoading(true)}
  onFinishSigning={(payload) => console.log(payload)}
  onError={(errorPayload) => console.log(errorPayload)}
/>
```

## 道具

### 签名

_字符串( 需要)_ - 从该数据库生成的Anvil签名页面的URL [`generateEtchSignURL` 图QL 变异](https://www.useanvil.com/docs/api/e-signatures#controlling-the-signature-process-with-embedded-signers)。签名框将通过此 URL 显示签名页面.

示例

```js
signURL={`https://app.useanvil.com/etch/8iJDbq8dkEmjrsNw7Dnb/sign?token=dsa...`}
```

### 滚动

_字符串 qq 无效_ - 可选滚动到签名框

-   `auto` - 将窗口滚动到挂载时的签名框
-   `smooth` - 安装时将窗口顺利地滚动到签名框
-   `null` - 禁用滚动

### 登录

_函数_ - 当签名页面装入完成时,此函数被调用 .

示例

```js
onLoad={() => setLoading(false)}
```

### 完成签名

_函数_ - 调用函数 `payload` 作为参数。 当一个用户成功完成签名时,它就会被调用 .

示例

```js
onFinishSigning={(payload) => console.log(payload)}

/*
{
  action: "signerComplete",
  signerEid: "kJzR6mcIWKoZs6KOxV4w",
  signerStatus: "completed",
  nextSignerEid: "HRLhx4khticpfxsUFSpj",
  documentGroupEid: "9fQnvfy51p7oKrEYajMh",
  documentGroupStatus: "partial",
  etchPacketEid: "J1phQTO6WQH6gZcMJAG5", // If from an EtchPacket
  weldDataEid: "J1phQTO6WQH6gZcMJAG5", // If from a workflow
}
*/
```

### 错误

_函数_ - 有特定错误的召回功能 `payload` 作为参数。 当用户在尝试签名时遇到错误时,它被称作. 详情见文件 [如何从错误中恢复](https://www.useanvil.com/docs/api/e-signatures#handling-signing-errors)。 。 。 .

示例

```js
onError={(payload) => console.log(payload)}

/*
{
  action: "signerError",
  errorType: "tokenExpired", tokenExpired || tokenInvalid || notFound
  error: "Token Expired",
  message: "Error specific message",
  signerEid: "kJzR6mcIWKoZs6KOxV4w",

  // depending on the errorType, you may or may not receive the following
  signerStatus: "sent",
  nextSignerEid: "HRLhx4khticpfxsUFSpj",
  documentGroupEid: "9fQnvfy51p7oKrEYajMh",
  documentGroupStatus: "sent",
  etchPacketEid: "J1phQTO6WQH6gZcMJAG5", // If from an EtchPacket
  weldDataEid: "J1phQTO6WQH6gZcMJAG5", // If from a workflow
}
*/
```

### 完成( 过期)

_函数_ - 这个函数将具有 `redirectURL` 作为参数; 当用户完成签名或体验和出错时调用。 请使用 `onFinishSigning` 财务报告和审定财务报表 `onError` 见上文.

示例

```js
onFinish={(redirectURL) => console.log(redirectURL)}
```

### 启用默认

_布尔( 默认: 真)_ - 设定为假以禁用组件的默认内行样式.

### iframewarning 方案

_对象_ - 如果用户的浏览器不支持iframes,将自定义道具传入显示的段落标记.

示例

```js
iframeWarningProps={{ className: 'warning-text' }}
```

## 样式

通过禁用自定义组件 `enableDefaultStyles` 并导入 CSS 或通过内置样式。 将ID或类名通过作为道具传递来取代.

## Anvil Etch 电子签名文件

[阅读文档](https://www.useanvil.com/docs/api/e-signatures)

## 链接 QQ

-   [@anvilco/反应-签名-框架](https://www.npmjs.com/package/@anvilco/react-signature-frame)
-   [开始使用 Anvil API](https://www.useanvil.com/docs/api/getting-started)

## 页:1

-   要启用 Iframe 嵌入: 请访问您在 Anvil 中的组织设置, 并启用 API 部分的 “ Iframe Embedding ” .
-   反应 QQ v16.0 需要.

## 错误

请为错误、 缺少文档或意外行为存档 .

## 问题或反馈

请发电子邮件给我们 [支持@useanvil.com](mailto:support@useanvil.com)。 。 。 .

## 常见问题

### @anvilco/react-signature-frame 是什么？

嵌入式 Etch 签名的 AnvilSignatureFrame 反应组件

### 如何安装 @anvilco/react-signature-frame？

在项目目录运行 npm install @anvilco/react-signature-frame，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=16）、react-dom（\>=16）、prop-types（^15\.6\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @anvilco/react-signature-frame 支持 TypeScript 吗？

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

### @anvilco/react-signature-frame 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @anvilco/react-signature-frame 可以商用吗？

@anvilco/react-signature-frame 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @anvilco/react-signature-frame 的下载量有多少？

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

### @anvilco/react-signature-frame 还在维护吗？

最新版本 1\.9\.2 发布于 2025/10/31（1 年前）；至今共发布 17 个版本，其中过去 12 个月发布了 0 个；首次发布于 2020/11/13。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

