# @clevertap/clevertap-expo-plugin 中文文档

规范地址：https://npmcn.com/package/%40clevertap/clevertap-expo-plugin/

版本：1\.1\.0
npm 元数据更新时间：2026-10-28T11:51:44.527Z
中文译文更新时间：2026-11-10T01:20:24.401Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40clevertap/clevertap-expo-plugin
原文对照：https://npmcn.com/package/%40clevertap/clevertap-expo-plugin/?lang=original
项目主页：https://github.com/CleverTap/clevertap-expo-plugin#readme

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

- 包体积（解压后）：290 kB，94 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- peer 依赖：expo \*，react \*，react-native \*
- 首次发布：2025-03-12T12:24:36.977Z
- 最新版本发布：2026-09-07T11:29:07.180Z
- 近 30 天下载量：29867（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 3 个）

## 中文简介

CleverTap Expo插件可以将 CleverTap SDK 集成到您的博览会项目中, 来利用 CleverTap 在您的 React Natural 应用程序中的特性 .

## 安装

```sh
npm install @clevertap/clevertap-expo-plugin
```

也可以使用：`pnpm add @clevertap/clevertap-expo-plugin`、`yarn add @clevertap/clevertap-expo-plugin`、`bun add @clevertap/clevertap-expo-plugin`

## README

![](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/docs/images/clevertap-logo.png)

# 聪明的博览会插件

[![npm version](https://badge.fury.io/js/clevertap-expo-plugin.svg)](https://badge.fury.io/js/clevertap-expo-plugin) [![](https://img.shields.io/github/release/CleverTap/clevertap-expo-plugin.svg) ](https://github.com/CleverTap/clevertap-expo-plugin/releases)[![npm downloads](https://img.shields.io/npm/dm/clevertap-expo-plugin.svg)](https://www.npmjs.com/package/clevertap-expo-plugin)

## 导 言

学习如何将 CleverTap SDK 集成到您的 Expo React Native 应用程序中 。 本指南解释了如何使用"博览会"插件来设置和配置CleverTap的特性.

要了解更多信息,请检查我们的 [网站](https://clevertap.com/ "CleverTap") 财务报告和审定财务报表 [文档](https://developer.clevertap.com/docs/ "CleverTap Technical Documentation")。 。 。 .

要开始,就报名 [这里](https://clevertap.com/live-product-demo/)。 。 。 .

## \* 概览

博览会(Expo)是一个围绕React Industrial构建的框架和平台,帮助您快速开发,构建并部署React Industrial应用程序. CleverTap 博览会插件提供了一个简化的方法,可以将 CleverTap React Independent SDK 整合到您的博览会应用中,而无需写入本地代码. 它使得在管理下的工作流程建设的建设前阶段能够定制化,从而不再需要排出一个赤裸的工作流程。 为 CliverTap 集成而专门定制的,这个插件通过自动生成并配置所需的本地代码文件来简化设置,以确保 CliverTap React Natural SDK 功能无缝. 将此插件视为执行所需本土配置的自动化方式,将您从手动写入平台专用代码中省去,用于CliverTap集成.

## 相容性矩阵

为确保CleverTap博览会插件的平稳整合,请参考以下相容性矩阵. 本表概述了支持的版本 CleverTap Expo插件, Expo SDK, React Introduct, 以及有效合作的 CleverTap React Introduct SDK.

| 智能Tap 博览会插件版本 | 曝光 SDK 版本 | React 本地版本 | 智能Tap 重现原生 SDK 版本 |
| --- | --- | --- | --- |
| 0.0.1 资源 | 52.0.0 (简体中文) | 0.77 (简体中文) | 3.2.0 (中文(简体) ) |
| 0.0.2 (中文(简体) ) | 52.0.0 (简体中文) | 0.77 (简体中文) | 3.2.0 (中文(简体) ) |
| 0.0.3 经常预算: | 53.0.0 (韩语) | 0.79 (中文(简体) ) | 3.7.0 (中文(简体) ) |
| 0.0.4 (中文(简体) ) | 53.0.0 (韩语) | 0.79 (中文(简体) ) | 3.7.0 (中文(简体) ) |
| 1.0.0 (单位:千美元) | 55.0.0 (简体中文) | 0.83 (中文(简体) ) | 4.0.0 (单位:千美元) |
| 1.1.0 国家 | 57.0.0 (简体中文) | 0.86 (中文(简体) ) | 4.3.1 国家 |

## ++ 安装和整合

### 第1步:安装 CleverTap 反应原生 SDK

```sh
npm install clevertap-react-native
```

### 第2步:安装 CleverTap 博览会插件

```sh
npx expo install @clevertap/clevertap-expo-plugin
```

### 第3步: 将插件添加到您的 app.json 中

在你身边 `app.json` 文件,添加 CleverTap 博览会插件配置。 下面是一个示例配置,显示强制参数和可选参数,如果适用,则显示其默认值:

**应用程序.json**

```json
{
  "expo" : {
    "plugins": [
      [
        "@clevertap/clevertap-expo-plugin",
        {
          "accountId": "WWW-AAA-BBBB",
          "accountToken": "AAA-BBB-CCCC",
          "accountRegion": "eu1",
          "disableAppLaunchedEvent": false,
          "logLevel": 0, 
          "encryptionLevel": 1, 
          "encryptionInTransit": true,
          "proxyDomain": "analytics.example.com", 
          "spikyProxyDomain": "spiky.example.com",
          "customIdentifiers": "Email,Phone", 
          "android": {
            "features": {
              "enablePush": true, 
              "enablePushTemplates": true, 
              "enableInApp": true, 
              "enableInbox": true, 
              "enableMediaForInAppsInbox": true, 
              "enableInstallReferrer": true, 
              "enableHmsPush": false, 
              "enableGoogleAdId": false,
              "enablePlayReview": true
            },
           "notificationIcon": "./assets/notification-icon.png",
           "customNotificationSound": ["notification_sound.mp3", "alert_tone.mp3","reminder. mp3"],
           "backgroundSync": "1", 
           "defaultNotificationChannelId": "default_channel", 
           "inAppExcludeActivities": "SplashActivity", 
           "sslPinning": "1", 
           "inAppFragmentlessBanners": false,
           "registerActivityLifecycleCallbacks": true 
          },
           "ios": {
            "mode": "development", //Mandatory
            "disableIDFV": true, //Optional, default: false
            "enableFileProtection": true, //Optional, default: false
            "enableURLDelegateChannels": [ 0, 1, 2 ], //Optional, default: null
            "notifications": {
              "enableRichMedia": true, 
              "enablePushImpression": true, 
              "enablePushTemplate": true, 
              "enablePushInForeground": true, 
              "iosPushAppGroup": "group.com.clevertap.expoDemo", 
              "notificationCategories": [
                {
                  "identifier": "CTNotification",
                  "actions": [ { "identifier": "action1",  "title": "title1" } ]
                }
              ] 
            }
          }
        }
      ]
    ]
  }
  }
```

### 第4步:配置您的应用程序.json

CleverTap 博览会插件支持多种配置选项来自定义您的集成:

#### 核心配置选项

| 财产 | 类型 | 说明 | 默认行为 |
| --- | --- | --- | --- |
| 账户编号 | 字符串 | 要求。 您的 CleverTap 账户 ID, 在 Setts 下的 CleverTap 仪表板中可用 . | 没有默认,必须提供. |
| 账户 | 字符串 | 要求。 您的 CleverTap 账户 Token, 可在 Setts 下的 CleverTap 仪表板中获取 . | 没有默认,必须提供. |
| 账户 | 字符串 | 可选的 您的 CleverTap 账户区域, 例如 "in1", "us1", "sg1"等 . | 如果没有指定,则根据您的账户自动确定区域. |
| 已禁用 Applaunched Event | 布尔 | 可选的 设定为 true 以禁用自动 App 启动的事件跟踪 . | 默认为虚假( App 启动事件被跟踪) . |
| 日志级别 | 编号 | 可选的 伐木水平. | 默认为 -1 (所有日志已禁用) 。 最小 SDK 集成记录设定为 0,调试输出设定为 2,或动词输出设定为 3. |
| 加密级别 | 编号 | 可选的. `0` 没有加密, `1` 加密PII数据(名称、电子邮件、身份、电话), `2` 加密所有数据,包括非PII. | 默认为 0( 不加密) . |
| 加密传输 | 布尔 | 可选的 设定为 true 以启用 PII 数据的加密 . | 默认是虚假的. |
| 代理域 | 字符串 | 可选的 您的自定义代理域,例如"analytics.yourdomain.com". | 默认无效( 使用标准的 CleverTap 端点) . |
| spiky Proxy域名 | 字符串 | 可选的 您的自定义 spiky 代理域用于推动印象事件 . | 默认无效( 使用标准的 CleverTap 端点) . |
| 自定义标识符 | 字符串 | 以逗号分隔的自定义标识符列表来进行自定义身份管理. 指定哪些标识符(如"电子邮件","电话","身份"或其中的任何组合) CleverTap 应在用户识别时使用 `onUserLogin()` 打电话. | 默认是身份,电子邮件. |

#### Android 特定配置

| 财产 | 类型 | 说明 | 默认行为 |
| --- | --- | --- | --- |
| (原始内容存档于2018-09-21) (英语). android. features.enable Push | 布尔 | 启用 Firebase Cloud 消息集成, 用于推进通知 。 启用时, CleverTap 自动处理 FCM 通知. 被禁用时,开发者必须通过自定义执行或第三方推出插件手动处理CleverTap推出通知. | 默认为虚假( 自动处理 FCM 已禁用) . |
| (原始内容存档于2018-06-21) (英语). android. features. enable PushTemplates | 布尔 | 启用高级推进模板 。 启用后,CliverTap将支持富含自定义UI组件的交互式推取通知模板,如自动推取通知,评分通知,产品显示通知等互动模板. | 默认为虚假( 已禁用推出模板 ) . |
| (原始内容存档于2018-09-21) (英语). android. features.enable InApp | 布尔 | 启用应用信件 。 启用时, CleverTap 将会根据您在仪表盘中配置的运动显示程序内通知 . | 默认为虚假( 已禁用在应用程序中的信件) . |
| (原始内容存档于2018-03-21) (英语). android. features. enableInbox | 布尔 | 启用 App Inbox 特性 。 当启用时, CleverTap 在您的应用程序中创建了专用部分,用户可以接收并访问由 CleverTap 仪表板直接发送的持久内容. 这一内容在被明确删除之前仍然可供用户使用,不同于一旦被浏览而消失的标准推力通知. | 默认为虚假( 已禁用 app inbox) . |
| android.features.enable MediaForInAppsInbox 互联网档案馆的存檔,存档日期2013-12-11 | 布尔 | 启用对内应用消息和应用程序收件箱的媒体支持 。 启用时, 您的应用程序内通知和收件箱信息可以显示视频内容 . | 默认为虚假( 媒体支持已禁用) . |
| (原始内容存档于2018-09-21). Install Referrer | 布尔 | 启用安装属性跟踪 。 启用后,CleverTap将跟踪安装属性数据来帮助测量运动效果. | 默认为虚假( 安装属性已禁用 ) . |
| (原始内容存档于2018-09-21) (英语). android. features.enableHmsPush | 布尔 | 启用花威Push服务(HMS)集成. 启用后,CleverTap会通过HMS和FCM同时发送推送通知,确保交付不支持Google服务的Huawei设备. | 默认为虚假( HMS push 禁用) . |
| (原始内容存档于2018-09-21) (英语). android. features. enable GoogleAdId | 布尔 | 启用谷歌广告ID收藏. 启用后,CleverTap将使用Google广告ID来独家识别用户,而不是生成自己的设备标识符. | 默认为虚假( Google Ad ID 收藏已禁用) . |
| (原始内容存档于2019-09-31) (英语). android.features.enablePlayReview | 布尔 | 启用 Google 游戏 in- App 评论功能 。 启用后,CleverTap支持将Google Play In-App审查API作为System In-App函数,允许用户在不离开应用程序的情况下对您的应用进行评分和审查. 这可以作为应用中消息中的按钮动作来被触发,也可以作为来自CleverTap仪表板的独立运动动作来被触发. | 默认为虚假( Play in- App Review 已禁用) . |
| 和机器人 | 字符串 | 用于 CleverTap 推进通知的通知图标 PNG 路径( 如 . `"./assets/notification-icon.png"`。需要用于55+展览 `notification.icon` 被从app.json中移除. 若为 `expo-notifications` 插件还配置了图标,CliverTap插件检测并跳过复制. | 默认无效( 没有自定义通知图标 ) . |
| 海关通知声 | 字符串或字符串 \[\] | 指定放置在资产文件夹中的自定义通知声音文件 。 然后,这些声音文件可以在您的应用程序中创建通知通道时使用 `CleverTapAPI.createNotificationChannel()`。 。 。 . | 默认无效( 使用默认系统声音 ) . |
| android. 后地同步 | 字符串 | 启用 CluverTap 的 Pull 通知通过背景调取服务 。 在设定为"1"时,该功能能够通过GCM/FCM来压制或限制定期推取通知的设备到达用户,提供了替代的提供机制. | 默认为"0"(背景同步已禁用). |
| android. 默认通知 | 字符串 | 指定驱动通知的默认通知通道ID。 当一个按键通知指定了应用程序中不存在的频道,确保通知总是被显示时,这个频道将被用作倒置. | 默认为无效( 如果找不到有效的频道, 则会回到创建的 CliverTap “ 杂项” 频道) . |
| android.inApp 活动 | 字符串 | 逗号分隔的活动列表,其中不应显示应用中的信息. | 默认无效( 在所有活动中显示应用) . |
| 密码: | 字符串 | 设定为" 1" , 以启用 SSL pinning 来添加安全性 . | 默认为"0"(SSL pinning已禁用). |
| (原始内容存档于2013-10-12). in App Fragmentless Banners | 布尔 | 设定为在主机活动不是一个时让自定义的 HTML 页眉和页脚在应用程序中发送通知的正则 `FragmentActivity` (例如"团结"或"不真实"的游戏引擎). 需要聪明的Android SDK v8.4.1或以上. | 默认为虚假( 标题/ 脚步程序需要 `FragmentActivity`) (中文(简体) ). |
| android.register activityLifecycle 召回器 | 布尔 | 自动注册活动生命周期调用 。 启用后,CleverTap将自动注册Android活动生命周期事件. 由于许多CleverTap特性依赖于这些回调功能才能正常运行,这被强烈推荐,包括会话跟踪,程序内通知,以及用户参与度量衡. | 默认为真( 已启用生命周期调用) . |

#### iOS 特定配置

| 财产 | 类型 | 说明 | 默认行为 |
| --- | --- | --- | --- |
| iOS.mode (英语) | 字符串 | 将APNs环境设定为"开发"或"生产"的权利来进行推取通知. 这决定了应用程序是使用沙盒还是生产APNs服务器. | 默认值根据提供配置文件自动设置. |
| iOS. disable IDFV (英语) | 布尔 | 在 iOS 设备上禁用供应商标识符(IDFV)的收集 . | 默认值是真实的,可以使用 IDFV 作为唯一标识符 . |
| iOS. 有效保护 | 布尔 | 通过在将数据写入磁盘时设置"NSDataWritingFile Protection Conference"选项来启用文件保护,通过限制访问直到设备解锁,确保最大安全性. | 默认为 NSFile ProtectionEUntil FirstUserAuthentication,指只有在用户在启动后首次解锁设备之前,文件才能访问. |
| iOS.novisions.novisions.cnotization 分类 | \[通知类别\] | 当客户端想要定义和处理自定义通知类别时启用,允许交互式通知动作,例如按钮或自定义的UI元素. | 默认无效 . |
| iOS. notes.enable PushInForeground 互联网档案馆的存檔,存档日期2013-12-21 | 布尔 | 当客户端想要在前景中收到按键通知时, 则应设定此值 . | 默认是虚假的. |
| iOS. notifications.enable RichMedia 互联网档案馆的存檔,存档日期2013-12-02 | 布尔 | 如果用户想要整合 CTinficiation Service 扩展, 则启用 。 客户端可以从仪表板上使用Rich Push. | 默认是虚假的(回到只收到标准推取通知而不包含丰富的媒体内容). |
| iOS.nofications.enable Push Template 互联网档案馆的存檔,存档日期2013-12-22 | 布尔 | 如果用户想要添加通知内容扩展目标, 此值应该设置为真 . | 默认是虚假的(回到只收到标准推取通知而不包含丰富的媒体内容). |
| iOS. Notifications.enable Push Impression 互联网档案馆的存檔,存档日期2013-12-22 | 布尔 | 如果用户想要整合 CTinficiation Service 扩展, 则启用 。 如果用户想要在 Dashboard 上登录 Push Impressions 事件, 此值应该设置为真 . | 默认是虚假的. |
| iOS. Notifications.iosPushApp 集团 | 字符串 | 设置此值是为了让 Dlook Push Impressions 到仪表板上. 用户配置细节应当保存在指定的"app group"中. 收到按下通知后,会使用所保存的配置细节来登录"Push Impression"以校正配置. | 默认无效 。 (应该设置为日志 Push 印象) |

### 第5步:额外的Android配置

在您的app.json文件中配置额外的Android特定设置 .

#### 第5.1步:Android权限

为了确保 CleverTap 正常运行, 在您的 app.json 中添加所需的权限 :

```json
{
  "expo": {
    "android": {
      "permissions": [
        "android.permission.ACCESS_NETWORK_STATE",
        "android.permission.INTERNET",
        "android.permission.POST_NOTIFICATIONS"
      ]
    }
  }
}
```

-   **获取 网络 STATE**: 允许智能Tap在尝试数据传输之前检查网络连接
-   **互联网**: CleverTap 需要从服务器发送和接收数据
-   **后通知**: Android 13+设备需要显示按压通知

### 步骤6: Push 通知的额外Android配置(可选)

在您的app.json中设置了基本配置后,您可能需要额外的针对平台的设置,以确保Android设备上的推器通知正常运行. 以下分步骤将引导您通过配置防火基地云密通信(FCM),花威移动服务(HMS)Push,以及自定义通知图标.

#### 第6.1步:火地云通信(FCM)配置

对于Firebase Cloud Message on Android,将您的google-service.json文件放入资产文件夹并添加到您的app.json:

```json
{
  "expo": {
    "android": {
      "googleServicesFile": "./assets/google-services.json"
    }
  }
}
```

#### 步骤 6.2:华威信使服务 (HMS) Push配置

如果您通过设置启用了 HMS Push 支持 `android.features.enableHmsPush` 改为 `true`,将您的 agconnect-service.json 文件放入项目的资产文件夹。 agconnect-services.json不需要具体财产,只要确保放在资产文件夹中即可.

#### 步骤 6.3: 自定义通知图标

配置您在 CleverTap 插件配置中的通知图标 `android` 节:

```json
"android": {
  "notificationIcon": "./assets/notification-icon.png"
}
```

插件将图标复制到Android可绘图资源,并配置 CleverTap 来使用. 确保您的图标遵循Android的通知图标指南(透明上为白色,建议使用96x96像素).

> **博览会55+ 移徙:** 这个 `notification.icon` 字段被删除 `app.json` 在 Expo SDK 55 中。 使用 `android.notificationIcon` 在插件配置中替换。 对于博览会53/54,遗产 `notification.icon` 字段仍然起到倒置的作用.

> **使用方式 `expo-notifications`数字 :** 如果您还使用了 `expo-notifications` 带有图标配置的插件, CliverTap 插件会检测现有的可绘制并跳过副本. 不过,你还需要设置 `android.notificationIcon` 用于 CluverTap 在按下通知中引用图标.

### 步骤7:通知扩展附加iOS配置

#### 步骤 7.1: 扩展启用时用于设置配置配置的附加iOS配置

在配置了您的 app.json 中的基本设置后, 如果您想要使用通知服务扩展或通知内容扩展, 您必须在 app.json 中添加额外的属性, 如下所示 。 确保您为每个扩展创建了相应的 App ID 和 提供配置 .

```
{
  "expo": {
   ….
    "extra": {
      "eas": {
        "projectId": “xxxx”,
        "build": {
          "experimental": {
            "ios": {
              "appExtensions": [
                {
                  "targetName": "NotificationService",
                  "bundleIdentifier": “xxxx”,
                  "entitlements": {
                    "com.apple.security.application-groups": [
                      "group.xxxx”
                    ]
                  }
                },
                {
                  "targetName": "NotificationContent",
                  "bundleIdentifier": “xxxx”,
                  "entitlements": {
                    "com.apple.security.application-groups": [
                      "group.xxxx”
                    ]
                  }
                }
              ]
            }
          }
        }
      }
    }
…
}

```

#### 步骤 7.2: Push 印象的附加iOS配置(可选)

在配置了您 app.json 中的基本设置后,下一步是创建一个 App Group 标识符,以便在您的主要应用和通知服务扩展之间实现数据共享. 这个应用组将在建设前阶段被分配到主要目标和通知服务扩展目标. 关于App Group配置的详细步骤,请参见此(文档)\[[https://developer.apple.com/documentation/xcode/ 配置-app-groups (中文(简体) )](https://developer.apple.com/documentation/xcode/configuring-app-groups)\[ \[ \] \[ \] \]. \].

```
"ios": {
...
  "notifications": {
    "enablePushImpression": true,
    "iosPushAppGroup": "group.com.clevertap.expoDemo"
  }
...
}
```

在您的应用程序中, 您需要保存配置数据, 如名称、 身份、 电子邮件和用户故障中的电话 。 我们的示例应用包括演示这一过程的样本代码. 所储存的剖面数据随后会被通知服务扩展(NSE)取回,以发送到CleverTap的服务器. 您可以在此找到更多细节: React Independent Push Notion – (iOS Push Impression) \[[https://developer.clevertap.com/docs/react-native-push- notification#push-impress-in-ios (英语)](https://developer.clevertap.com/docs/react-native-push-notification#push-impression-in-ios)\[ \[ \] \[ \] \]. \].

```
userDefaults.set("CTProfileName", 'testUserA1', "group.com.clevertap.expoDemo", (err, data) => {
  if (!err) console.log('Saved CTProfileName: testUserA1')
})
//remaining data
...
```

### 步骤8: 预建您的应用程序

运行以下命令以生成 CleverTap 博览会插件所需的本地文件 :

```sh
npx expo prebuild
```

使用 `npx expo prebuild --clean` 通过删除已有的本地目录,从头复制本地代码。 这对重大配置或本地代码的修改很有用,可以确保新的构建.

### 第9步:在应用程序中导入并使用 CleverTap React Native SDK API

```
const CleverTap = require('clevertap-react-native');

CleverTap.recordEvent('testEvent');

CleverTap.setLocation(34.15, -118.2);
```

### 步骤10:测试您的整合

校验您的 CleverTap 集成工作正常:

-   安装和运行您的应用程序
-   以测试用户配置调用 UserLogin 方法
-   记录一些测试事件
-   检查 CleverTap 仪表板,以确保用户简介和事件被跟踪
-   通过从 CleverTap 仪表板发送测试活动来测试推取通知

## 对Android的重要说明和建议

### 文件位置

-   **HMS 配置文件**编号: `agconnect-services.json` 文件必须放在您的项目资产文件夹的根层,用于 HMS 推动集成以正确运行.
-   **通知声音文件**: 所有自定义通知声音文件必须放在项目资产文件夹的根层。 这些不能放在子目录中.
-   **其他文件**: 文件类 `google-services.json` 如果在应用程序.json配置中正确引用,则通知图标可以放置在资产文件夹中的子目录中.

### Google 服务配置

-   **google-services.json 互联网档案馆的存檔,存档日期2013-12-02**: 如果您启用 Firebase Cloud 消息系统, 此文件需要 `android.features.enablePush = true`) (中文(简体) ). 必须在您的项目资产文件夹中放置,并在 app.json 中使用 `googleServicesFile` 属性.
-   **获取文件**: 从您的 Firebase 控制台项目设置下载此文件 。 如果没有有效的配置,按下通知将无法正确工作 .
-   **测试**:集成后,从CleverTap仪表板上发送一个测试推力来验证适当的设置.

### 华威推车服务

-   **agconnection-services.json (英语)**: 如果您启用了Huawei Mobile Services推力, 则需要`android.features.enableHmsPush = true`) (中文(简体) ). 此文件必须放置在您的工程资产文件夹的根层 .
-   **无明确参考资料**: 与google-services.json不同,您不需要在app.json中引用此文件,但必须在资产文件夹中存在.
-   **AppGallery 连接**: 从 Huawei AppGallery 连接控制台生成此文件, 用于您的应用程序 .

### 自定义通知声音

-   **声音文件格式**:使用.mp3,.wav,或.ogg文件作为通知声音.
-   **资产放置**: 将声音文件放入您资产文件夹的根层。 声音文件不支持子目录 .
-   **频道注册**: 在预建后, 您必须用您的自定义声音在应用程序代码中注册一个通知通道 :
    
    ```javascript
    CleverTap.createNotificationChannel(
     "channel_id",
     "Channel Name",
     "Channel Description",
     5, 
     true, 
     "sound_file.mp3" 
    );
    ```
    

### 自定义通知图标

-   **图标要求 :** 您的通知图标应该是一个全白的 PNG , 具有透明的背景, 96x96 像素推荐 .
    
-   **图标配置 :** 设定 `android.notificationIcon` 在 CleverTap 插件配置中 :
    
    ```json
    "android": {
      "notificationIcon": "./assets/notification-icon.png"
    }
    ```
    
-   **博览会55+ 用户 :** 这个 `notification.icon` 字段被删除 `app.json` 在 Expo SDK 55 中。 你个 **必须** 使用情况 `android.notificationIcon` 在插件配置中.
    
-   **Expo 53/54 用户 :** 遗产 `notification.icon` 输入 `app.json` 不过我们建议迁移到 `android.notificationIcon` 用于前置兼容性.
    

### 特征依赖

-   **按下模板 :** 要使用推取模板, `android.features.enablePush` 还必须启用。 Push 模板为 **不支持** 通过自定义执行.
    
-   **媒体支持 :** 启用 `android.features.enableMediaForInAppsInbox` 用于应用信件和应用程序收件箱中的视频内容.
    

## QQ 更改日志

参见 [智能Tap 博览会插件更改日志](https://npmcn.com/CHANGELOG.md)。 。 。 .

## QQ 样本应用程序

要看到一个回想原生博览会的应用 运行与智能Tap SDK,检查我们 [gitHub 上的样本应用程序](https://npmcn.com/package/%40clevertap/clevertap-expo-plugin/ctDemoApp/)。 。 。 .

## \* 反馈

我们高度评价你们的反馈,以提高其稳定性和功能。 如果您遇到任何问题, 有建议, 或者想分享您与插件的经验, 请 :

1.  通过 GitHub 问题提交详细的错误报告
2.  包括复制任何问题的具体步骤
3.  共享您的环境细节( Expo 版本, React Index 版本, 设备信息)
4.  未来发布时您想看到的增强或特性建议

您的投入对于这个插件的成功至关重要,并将帮助我们为稳定的发布做准备.

## 帮助和问题?

如果有问题或担心,可以从"CleverTap Dashboard"中接触到"CleverTap"支援团队.

## 常见问题

### @clevertap/clevertap-expo-plugin 是什么？

CleverTap Expo插件可以将 CleverTap SDK 集成到您的博览会项目中, 来利用 CleverTap 在您的 React Natural 应用程序中的特性 \.

### 如何安装 @clevertap/clevertap-expo-plugin？

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

### @clevertap/clevertap-expo-plugin 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/clevertap\_\_clevertap-expo-plugin 是否存在。

### @clevertap/clevertap-expo-plugin 支持 ESM 还是 CommonJS？

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

### @clevertap/clevertap-expo-plugin 可以商用吗？

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

### @clevertap/clevertap-expo-plugin 的下载量有多少？

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

### @clevertap/clevertap-expo-plugin 还在维护吗？

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

