# @capgo/capacitor-purchases 中文文档

规范地址：https://npmcn.com/package/%40capgo/capacitor-purchases/

版本：5\.0\.8
npm 元数据更新时间：2026-08-19T10:41:05.103Z
中文译文更新时间：2026-11-09T14:21:43.164Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40capgo/capacitor-purchases
原文对照：https://npmcn.com/package/%40capgo/capacitor-purchases/?lang=original
项目主页：https://github.com/Cap-go/capacitor-purchases#readme
源码仓库：https://github.com/Cap-go/capacitor-purchases

弃用说明：Transfered to RevenueCat ORG use @revenuecat/purchases-capacitor

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

- 包体积（解压后）：194 kB，25 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@capacitor/core ^5\.0\.0
- 首次发布：2022-07-24T12:22:32.525Z
- 最新版本发布：2023-07-31T03:27:24.245Z
- 近 30 天下载量：2461（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：94（近 12 个月 0 个）

## 中文简介

使用 EvolutionCat sdk 方便的应用程序订阅

## 安装

```sh
npm install @capgo/capacitor-purchases
```

也可以使用：`pnpm add @capgo/capacitor-purchases`、`yarn add @capgo/capacitor-purchases`、`bun add @capgo/capacitor-purchases`

## README

# 电容器购买

[![Capgo - Instant updates for capacitor](https://raw.githubusercontent.com/Cap-go/capgo/main/assets/capgo_banner.png)](https://capgo.app/)

## [请检查access-date=中的日期值 (帮助) Capgo — 电容器的实时更新](https://capgo.app/)

使用 FinancilsCat SDK 方便的应用程序订阅

FinanceCat是一个第三方工具,它处理我们的所有困难,直到每月收入一万美元为止

SDK v4 以 Lastes FinancientCat 执行控制器

收入表 : [![](https://www.appbrain.com/stats/libraries/shield/revenuecat.svg)](https://www.appbrain.com/stats/libraries/details/revenuecat/revenuecat)

## 逐级授课

[https://capgo.app/blog/in-app-sessers-capicor/ 页面存档备份,存于互联网档案馆](https://capgo.app/blog/in-app-purchases-capacitor/)

## 安装

```bash
npm install @capgo/capacitor-purchases
pnpm dlx cap sync
```

## 机器人

把这个添加到您的机器人清单中 `android/app/src/main/AndroidManifest.xml`

```xml
<uses-permission android:name="com.android.vending.BILLING"/>
```

### 变量

此插件将使用以下工程变量( 在您的应用程序中定义) `variables.gradle` 文件名 :

-   `$kotlinVersion` 版本 `org.jetbrains.kotlin:kotlin-stdlib-jdk7` (默认 : `1.7.21`(中文(简体) )

如果您有汇编问题 `Duplicate class androidx.lifecycle.ViewModelLazy` 我在这里找到了为我工作的解决方案: [https://stackoverflow.com/ questions/73406969/ 二重级-同级-机器人-生命周期-观光模型lazy-found-in-modules-lifecycle-view 互联网档案馆的存檔,存档日期2013-10-02](https://stackoverflow.com/questions/73406969/duplicate-class-androidx-lifecycle-viewmodellazy-found-in-modules-lifecycle-view)

添加这个

```
configurations {
    all {
        exclude group: 'androidx.lifecycle', module: 'lifecycle-runtime-ktx'
        exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
    }
}
an
```

文件行 2 `android/app/build.gradle`

## 配置

此插件不需要配置 .

## 迁移v2

获取 PurchaserInfo 成为获取 CustomeInfo 购买者信息成为客户信息 将交易恢复为还原

详情请见此: [https://github.com/RevenueCat/购买-android/blob/main/migrations/v5-MIGARINE.md](https://github.com/RevenueCat/purchases-android/blob/main/migrations/v5-MIGRATION.md)

## API 密码

-   [`setup(...)`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-setup)
-   [`addListener('purchasesUpdate', ...)`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-addlistenerpurchasesupdate)
-   [`getOfferings()`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-getofferings)
-   [`purchasePackage(...)`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-purchasepackage)
-   [`restorePurchases()`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-restorepurchases)
-   [`setAttributes(...)`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-setattributes)
-   [`logIn(...)`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-login)
-   [`logOut()`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-logout)
-   [`getCustomerInfo()`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-getcustomerinfo)
-   [`setDebugLogsEnabled(...)`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-setdebuglogsenabled)
-   [接口](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-interfaces)
-   [数字](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-enums)

### 设置(...)

```typescript
setup(data: { apiKey: string; appUserID?: string; observerMode?: boolean; enableAdServicesAttribution?: boolean; collectDeviceIdentifiers?: boolean; }) => any
```

设置您的 API 密钥和应用程序用户 ID .

| 参数 | 类型 |
| --- | --- |
| **`data`** | `{ apiKey: string; appUserID?: string; observerMode?: boolean; enableAdServicesAttribution?: boolean; collectDeviceIdentifiers?: boolean; }` |

**回返情况:** `any`

* * *

### 添加Listener('购买更新',...)

```typescript
addListener(eventName: "purchasesUpdate", listenerFunc: (data: { purchases: Package; customerInfo: CustomerInfo; }) => void) => Promise<PluginListenerHandle> & PluginListenerHandle
```

当部分结果成真并收到结果时调用

提供了部分结果.

| 参数 | 类型 |
| --- | --- |
| **`eventName`** | `'purchasesUpdate'` |
| **`listenerFunc`** | `(data: { purchases: [Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package); customerInfo: [CustomerInfo](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-customerinfo); }) => void` |

**回返情况:** `any`

**自:** 2.0.2 (中文(简体) )

* * *

### 获取 Offenings ()

```typescript
getOfferings() => any
```

获得 [提供](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-offerings) 在收入控制仪表板中配置

**回返情况:** `any`

* * *

### 购买包(...)

```typescript
purchasePackage(data: { identifier: string; offeringIdentifier: string; oldSKU?: string | null; }) => any
```

买个东西

| 参数 | 类型 |
| --- | --- |
| **`data`** | `{ identifier: string; offeringIdentifier: string; oldSKU?: string | null; }` |

**回返情况:** `any`

* * *

### 恢复纯度( C)

```typescript
restorePurchases() => any
```

还原一个用户的前身,并将其应用用户ID链接到任何用户也使用这些用户的上.

**回返情况:** `any`

* * *

### 属性(...)

```typescript
setAttributes(data: { attributes: { [key: string]: string | null; }; }) => any
```

订阅者属性对于存储用户上的额外,结构化的信息是有用的. 由于属性可以使用公钥书写,因此不应用于 管理安全或敏感的信息,如订阅状态,硬币等.

以"$"开头的关键名是FOVCat所使用的保留名. 完整的密钥列表 限制是指我们的指南: [https://docs.revenuecat.com/docs/订阅者属性](https://docs.revenuecat.com/docs/subscriber-attributes)

| 参数 | 类型 |
| --- | --- |
| **`data`** | `{ attributes: { [key: string]: string | null; }; }` |

**回返情况:** `any`

* * *

### 登录(...)

```typescript
logIn(data: { appUserID: string; }) => any
```

此函数将使用应用程序UserID登录当前用户 。 通常在登录后使用 以识别用户而无需调用配置.

| 参数 | 类型 |
| --- | --- |
| **`data`** | `{ appUserID: string; }` |

**回返情况:** `any`

* * *

### 日志输出( C)

```typescript
logOut() => any
```

登录客户端清除保存的应用程序用户ID 。 这将生成随机用户ID并保存在缓存中. 如果当前用户已经匿名, 这将产生一个错误 .

**回返情况:** `any`

* * *

### 获取客户端信息( C)

```typescript
getCustomerInfo() => any
```

获取当前购买者的信息 。 此调用将返回缓存的购买者信息, 除非缓存已停止, 在这种情况下, 它会发出网络呼叫 从服务器上取回它.

**回返情况:** `any`

* * *

### 设置调试日志

```typescript
setDebugLogsEnabled(data: { enabled: boolean; }) => any
```

启用/ 禁用调试日志

| 参数 | 类型 |
| --- | --- |
| **`data`** | `{ enabled: boolean; }` |

**回返情况:** `any`

* * *

### 接口

#### 软件包

包含可供用户购买的产品信息. 更多信息见 [https://docs.revenuecat.com/docs/ 应享权利](https://docs.revenuecat.com/docs/entitlements)

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`identifier`** | `string` | 此软件包的独特标识符 。 可以是预定义的软件包类型或自定义类型 . |
| **`packageType`** | `[PACKAGE_TYPE](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package_type)` | [软件包](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) 类型。 将是\[PACKAGE TYPE\]之一. |
| **`product`** | `[Product](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product)` | [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 分配给此软件包. |
| **`offeringIdentifier`** | `string` | [提供](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-offering) 此包属于 . |

#### 产品

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`identifier`** | `string` | [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 爱德. |
| **`description`** | `string` | 产品说明. |
| **`title`** | `string` | 产品名称. |
| **`price`** | `number` | 产品以当地货币计价. |
| **`priceString`** | `string` | 项目的格式价格,包括其货币标志,如3.99欧元. |
| **`currencyCode`** | `string` | 价格和原价的货币代码. |
| **`currencySymbol`** | `string` | 价格和原价的货币符号. |
| **`isFamilyShareable`** | `boolean` | 布尔表示产品是否与家族相通 |
| **`subscriptionGroupIdentifier`** | `string` | 产品组标识符 . |
| **`subscriptionPeriod`** | `[SubscriptionPeriod](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-subscriptionperiod)` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 子脚本组标识符. |
| **`introductoryPrice`** | `[SKProductDiscount](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-skproductdiscount) | null` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 介绍性价格. |
| **`discounts`** | `{}` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折扣列表. |

#### 订阅

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`numberOfUnits`** | `number` | 订阅期间单位数. |
| **`unit`** | `number` | 订阅时间单位. |

#### SK 生产贴现

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`identifier`** | `string` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折扣标识符. |
| **`type`** | `number` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折扣类型. |
| **`price`** | `number` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折扣价格. |
| **`priceString`** | `string` | 项目的格式价格,包括其货币标志,如3.99欧元. |
| **`currencySymbol`** | `string` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折扣货币符号. |
| **`currencyCode`** | `string` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折价货币代码. |
| **`paymentMode`** | `number` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折扣支付模式. |
| **`numberOfPeriods`** | `number` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 期间的折扣数. |
| **`subscriptionPeriod`** | `[SubscriptionPeriod](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-subscriptionperiod)` | 这个 [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 折扣订阅期. |

#### 客户信息

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`entitlements`** | `[EntitlementInfos](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-entitlementinfos)` | 该购买者信息附带的权利 |
| **`activeSubscriptions`** | `[string]` | 一组活动订阅 skus |
| **`allPurchasedProductIdentifiers`** | `[string]` | 一套已购买的、活跃和闲置的骷髅 |
| **`nonSubscriptionTransactions`** | `{}` | 返回用户所做的全部非订阅 。 定购日期为递增顺序. |
| **`latestExpirationDate`** | `string | null` | 所有购买的骷髅的最近到期日期 |
| **`firstSeen`** | `string` | 此用户最早出现的日期见于FinancialCat. |
| **`originalAppUserId`** | `string` | 原始 App 用户 ID为这个用户录制. |
| **`requestDate`** | `string` | 请求此信息的日期 |
| **`originalApplicationVersion`** | `string | null` | 用户购买应用程序时返回应用程序版本的版本编号. 迁移到订阅时为外公用户使用此功能 。 这与最初购买时Info.plist文件中的CFBundleVersion(在iOS)的值相对应. 这在Android总是无效的 |
| **`originalPurchaseDate`** | `string | null` | 用户购买应用程序时返回该应用程序版本的购买日期 。 迁移到订阅时为外公用户使用此功能 . |
| **`managementURL`** | `string | null` | URL来管理用户的主动订阅. 如果该用户有活跃的iOS订阅,这将指向App Store,如果用户有活跃的 Play Store 订阅,它会指向那里. 如果没有主动订阅, 则无效 。 如果不同平台有多个,则会指向设备商店. |

#### 应享权利信息

包含所有与用户相关的应享权利.

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`all`** | `{ [key: string]: [EntitlementInfo](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-entitlementinfo); }` | 所有地图 [应享权利信息](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-entitlementinfo) (单位:千美元)`PurchasesEntitlementInfo`)对象(活性和活性),由应享权利标识符键入. |
| **`active`** | `{ [key: string]: [EntitlementInfo](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-entitlementinfo); }` | 活动地图 [应享权利信息](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-entitlementinfo) (单位:千美元)`PurchasesEntitlementInfo`) 由应享权利标识符键入的对象. |

#### 应享权利信息

这个 [应享权利信息](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-entitlementinfo) 对象允许您访问所有关于用户应享权利状况的信息.

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`identifier`** | `string` | 收入控制仪表板中配置的应享权利标识符 |
| **`isActive`** | `boolean` | 如果用户可以使用此权限, 则为真 |
| **`willRenew`** | `boolean` | 如果基本的订阅被设定为在计费期结束时续签( 过期) , 则为真 。 如果权利是终身的,则永远是真实的. |
| **`periodType`** | `string` | 上一个时期为这一福利类型。 两者之一: NORMAL,INTRO,TRIAL. |
| **`latestPurchaseDate`** | `string` | 应享权利的最新购买或续签日期. |
| **`originalPurchaseDate`** | `string` | 购买这项权利的第一个日期. |
| **`expirationDate`** | `string | null` | 应享权利的终止日期可以是: `null` 终生访问。 如果 `periodType` 实值 `trial`,这是审判期满的日期. |
| **`store`** | `string` | 这个权利被解锁的商店。 无论是AppStore、macAppStore、游戏Store、条纹、宣传、未知的Store |
| **`productIdentifier`** | `string` | 解锁此权限的产品标识符 |
| **`isSandbox`** | `boolean` | 如果通过生产购买来解锁该权利,则是假的 |
| **`unsubscribeDetectedAt`** | `string | null` | 检测到未订阅日期 。 可能会 `null`。 。 。 . |
| **`billingIssueDetectedAt`** | `string | null` | 发现开账单的日期。 可能会 `null` 如果没有计费问题或问题已经解决 |

#### 交易

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`transactionIdentifier`** | `string` | 收入表 和交易有关. |
| **`productIdentifier`** | `string` | [产品](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-product) 和交易有关. |
| **`purchaseDate`** | `string` | 以ISO 8601格式进行交易的购买日期. |

#### 插件听筒

| Prop | 类型 |
| --- | --- |
| **`remove`** | `() => any` |

#### 提供

包含收入表盘中配置的所有报价. 更多信息见 [https://docs.revenuecat.com/docs/ 应享权利](https://docs.revenuecat.com/docs/entitlements)

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`all`** | `{ [key: string]: [Offering](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-offering); }` | 所有地图 [提供](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-offerings) \[purchas Offening\] 被其识别符所键入的对象. |
| **`current`** | `[Offering](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-offering) | null` | 目前在FormCat仪表板上配置的报价. |

#### 提供

赠品是套件的收藏品(`PurchasesPackage`可供用户购买. 更多信息见 [https://docs.revenuecat.com/docs/ 应享权利](https://docs.revenuecat.com/docs/entitlements)

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`identifier`** | `string` | FOENCAT仪表板中定义的独特标识符. |
| **`serverDescription`** | `string` | [提供](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-offering) 定义. |
| **`availablePackages`** | `{}` | 矩阵 [`Package`](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) 可购买的对象. |
| **`lifetime`** | `[Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) | null` | 如果有的话,在FORSCat仪表板中配置的寿命包类型. |
| **`annual`** | `[Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) | null` | 年度软件包类型(如果有的话),配置在FORSCat仪表板中. |
| **`sixMonth`** | `[Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) | null` | 如果有的话,在FinancialCat仪表板中配置了6个月的包类型. |
| **`threeMonth`** | `[Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) | null` | 如果有的话,在FORSCat仪表板中配置了三个月包类型. |
| **`twoMonth`** | `[Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) | null` | 如果有的话,在FinancialCat仪表板中配置了两个月包类型. |
| **`monthly`** | `[Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) | null` | 如果有的话,在FOFFCat仪表板中配置的月包类型. |
| **`weekly`** | `[Package](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-package) | null` | 如果有的话,在FonctionCat仪表板中配置的每周包类型. |

#### 登录结果

持有日志结果

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`customerInfo`** | `[CustomerInfo](https://npmcn.com/package/%40capgo/capacitor-purchases/#readme-customerinfo)` | 用户的购买者信息 . |
| **`created`** | `boolean` | 如果电话导致在ForwardCat后端中创建了新用户,则情况确实如此. |

### 数字

#### 包件类型

| 成员 | 数值 | 说明 |
| --- | --- | --- |
| **`UNKNOWN`** | `"UNKNOWN"` | 使用自定义标识符定义的软件包 . |
| **`CUSTOM`** | `"CUSTOM"` | 使用自定义标识符定义的软件包 . |
| **`LIFETIME`** | `"LIFETIME"` | 配置了预定义寿命标识符的软件包 . |
| **`ANNUAL`** | `"ANNUAL"` | 配置了预定义的年度标识符的软件包 . |
| **`SIX_MONTH`** | `"SIX_MONTH"` | 配置了预定义的6个月标识符的软件包 . |
| **`THREE_MONTH`** | `"THREE_MONTH"` | 配置了预定义的三个月标识符的软件包 . |
| **`TWO_MONTH`** | `"TWO_MONTH"` | 配置了预定义的两个月标识符的软件包 . |
| **`MONTHLY`** | `"MONTHLY"` | 配置了预定义月标识符的软件包 . |
| **`WEEKLY`** | `"WEEKLY"` | 配置了预定义的周标识符的软件包 . |

## 常见问题

### @capgo/capacitor-purchases 是什么？

使用 EvolutionCat sdk 方便的应用程序订阅注意：该包已被作者标记为弃用——Transfered to RevenueCat ORG use @revenuecat/purchases-capacitor

### 如何安装 @capgo/capacitor-purchases？

在项目目录运行 npm install @capgo/capacitor-purchases，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@capacitor/core（^5\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @capgo/capacitor-purchases 支持 TypeScript 吗？

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

### @capgo/capacitor-purchases 支持 ESM 还是 CommonJS？

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

### @capgo/capacitor-purchases 可以商用吗？

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

### @capgo/capacitor-purchases 的下载量有多少？

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

### @capgo/capacitor-purchases 还在维护吗？

最新版本 5\.0\.8 发布于 2023/07/31（3 年前）；至今共发布 94 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/07/24。作者已将其标记为弃用，新项目建议寻找替代方案。

