# @cometchat/cards-react-native 中文文档

规范地址：https://npmcn.com/package/%40cometchat/cards-react-native/

版本：1\.0\.0
npm 元数据更新时间：2026-10-09T14:01:15.073Z
中文译文更新时间：2026-11-10T11:46:57.587Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：549 kB，232 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \>=18\.0\.0，react-native \>=0\.76\.0
- 首次发布：2026-05-26T16:16:52.455Z
- 最新版本发布：2026-05-26T16:16:52.873Z
- 近 30 天下载量：9134（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 1 个）

## 中文简介

反应原生的彗星Chat Card Schema 渲染器——将 Card Schema JSON 转换为原生视图

## 安装

```sh
npm install @cometchat/cards-react-native
```

也可以使用：`pnpm add @cometchat/cards-react-native`、`yarn add @cometchat/cards-react-native`、`bun add @cometchat/cards-react-native`

## README

# @cometchat/cards- react-inative (英语)

彗星卡Schema的回放原生渲染器. 传入名片JSON,取回一棵本土取景树. 交互式元素的磁带通过一个回调程序向您的应用程序发射——软件包从不执行动作本身.

## 它会做什么

-   将卡片 Schema JSON 切入打入型号
-   渲染20个元素类型(文本、图像、图标、相机、徽章、分隔器、空间器、芯片、进步栏、代码Block、标记下、行、列、网格、手风琴、分页、按钮、图标按钮、链接、表格)
-   决定认识到主题颜色和图像 URL `auto`, (中文(简体) ), `light`,以及 `dark` 模式,可选主题覆盖
-   点击按钮、图标按钮和链接 `onAction` 以键入方式调用 `CometChatCardActionEvent`编号

包裹是一个纯粹的渲染器. 它不与"彗星Chat SDK"对话,不管理信息生命周期,也不知道你的应用的导航. 每个动作都由你决定.

## 安装

```bash
npm install @cometchat/cards-react-native
```

**同伴依赖关系** (必须是在您的项目):

```json
{
  "react": ">=18.0.0",
  "react-native": ">=0.76.0"
}
```

## 使用量

```tsx
import { CometChatCardView } from '@cometchat/cards-react-native';

function CardScreen({ cardJson }: { cardJson: string }) {
  return (
    <CometChatCardView
      cardJson={cardJson}
      themeMode="auto"
      onAction={(event) => {
        // Handle the action — navigate, send a message, open a URL, etc.
        console.log(`action: ${event.action.type} from ${event.elementId}`);
      }}
    />
  );
}
```

## 道具

| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `cardJson` | `string` | —— 说 | 卡片Schema JSON字符串( 需要) |
| `themeMode` | `'auto' | 'light' | 'dark'` | `'auto'` | 主题模式. `auto` 遵循设备系统主题. |
| `onAction` | `(event: CometChatCardActionEvent) => void` | —— 说 | 当用户使用带有有效动作的互动元素时, 调用已启动 |
| `onContainerStyle` | `(style: CometChatCardResolvedContainerStyle) => void` | —— 说 | 表示卡片的解析容器样式(背景、边框Radius、垫板等),供消费者向母包申请 |
| `themeOverride` | `CometChatCardThemeOverride` | —— 说 | 覆盖默认主题符号( 颜色, 打印) |
| `logLevel` | `'none' | 'error' | 'warning' | 'verbose'` | `'warning'` | 控制内部记录动词 |

## 他们

当JSON省略颜色时,渲染器会倒回内置的默认主题. 要推翻默认,请通过 `themeOverride`数字 :

```tsx
<CometChatCardView
  cardJson={cardJson}
  themeMode="dark"
  themeOverride={{
    textColor: { light: '#141414', dark: '#F5F5F5' },
    buttonFilledBg: { light: '#1A73E8', dark: '#8AB4F8' },
  }}
/>
```

任意 `ColorValue` 计划是解决 `light` 或者说 `dark` 基于有效主题模式的变量.

## 行动

当用户点击时 `button`, (中文(简体) ), `iconButton`,或 `link`,软件包引用 `onAction` 带有 `CometChatCardActionEvent` 包含:

-   `action` ——全动作对象(类型+所有参数)
-   `elementId` 被窃听元素的编号
-   `cardJson` - 动作来自JSON的卡片

支持的行动类型 : `openUrl`, (中文(简体) ), `copyToClipboard`, (中文(简体) ), `downloadFile`, (中文(简体) ), `apiCall`, (中文(简体) ), `chatWithUser`, (中文(简体) ), `chatWithGroup`, (中文(简体) ), `sendMessage`, (中文(简体) ), `initiateCall`, (中文(简体) ), `customCallback`。 。 。 .

如果你不通过 `onAction`水龙头被忽略了.

## 容器样式

这个 `onContainerStyle` 调用后释放卡片根容器样式, 颜色已经为当前主题模式解决 :

```tsx
const [bubbleStyle, setBubbleStyle] = useState({});

<View style={bubbleStyle}>
  <CometChatCardView
    cardJson={cardJson}
    themeMode="auto"
    onContainerStyle={(style) => setBubbleStyle({
      backgroundColor: style.background,   // already resolved hex string
      borderRadius: style.borderRadius,
      borderColor: style.borderColor,
    })}
  />
</View>
```

这在将卡片嵌入到信息泡中时是有用的——气泡包可以匹配卡片的视觉设置.

## 无依赖

该套件除了React和React Introduct之外,没有运行时间依赖性. 图像加载使用 RN 内置 `<Image>`,动画使用 `Animated`,可使用自定义内置解析器来解析标记,而闪光的占位符则使用本地视图来解析.

## 再来

见 `CardRendererDemo/` 用于可运行样品的应用程序和用于全面参考计划的设计文件.

## 常见问题

### @cometchat/cards-react-native 是什么？

反应原生的彗星Chat Card Schema 渲染器——将 Card Schema JSON 转换为原生视图

### 如何安装 @cometchat/cards-react-native？

在项目目录运行 npm install @cometchat/cards-react-native，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=18\.0\.0）、react-native（\>=0\.76\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @cometchat/cards-react-native 支持 TypeScript 吗？

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

### @cometchat/cards-react-native 支持 ESM 还是 CommonJS？

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

### @cometchat/cards-react-native 可以商用吗？

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

### @cometchat/cards-react-native 的下载量有多少？

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

### @cometchat/cards-react-native 还在维护吗？

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

