@clevertap/clevertap-expo-plugin

中文文档
1.1.0发布于 2026/09/07MITCommonJS零依赖近 30 天下载 3万

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

中文使用文档
文档目录25 节
  1. 导 言
  2. * 概览
  3. 相容性矩阵
  4. ++ 安装和整合
  5. 第1步:安装 CleverTap 反应原生 SDK
  6. 第2步:安装 CleverTap 博览会插件
  7. 第3步: 将插件添加到您的 app.json 中
  8. 第4步:配置您的应用程序.json
  9. 第5步:额外的Android配置
  10. 步骤6: Push 通知的额外Android配置(可选)
  11. 步骤7:通知扩展附加iOS配置
  12. 步骤8: 预建您的应用程序
  13. 第9步:在应用程序中导入并使用 CleverTap React Native SDK API
  14. 步骤10:测试您的整合
  15. 对Android的重要说明和建议
  16. 文件位置
  17. Google 服务配置
  18. 华威推车服务
  19. 自定义通知声音
  20. 自定义通知图标
  21. 特征依赖
  22. QQ 更改日志
  23. QQ 样本应用程序
  24. * 反馈
  25. 帮助和问题?

聪明的博览会插件

npm version npm downloads

导 言

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

要了解更多信息,请检查我们的 网站 财务报告和审定财务报表 文档。 。 。 .

要开始,就报名 这里。 。 。 .

* 概览

博览会(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

npm install clevertap-react-native

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

npx expo install @clevertap/clevertap-expo-plugin

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

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

应用程序.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 中添加所需的权限 :

{
  "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:

{
  "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 节:

"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 (中文(简体) )[ [ ] [ ] ]. ].

"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 (英语)[ [ ] [ ] ]. ].

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

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

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

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文件作为通知声音.
  • 资产放置: 将声音文件放入您资产文件夹的根层。 声音文件不支持子目录 .
  • 频道注册: 在预建后, 您必须用您的自定义声音在应用程序代码中注册一个通知通道 :
    CleverTap.createNotificationChannel(
     "channel_id",
     "Channel Name",
     "Channel Description",
     5, 
     true, 
     "sound_file.mp3" 
    );
    

自定义通知图标

  • 图标要求 : 您的通知图标应该是一个全白的 PNG , 具有透明的背景, 96x96 像素推荐 .

  • 图标配置 : 设定 android.notificationIcon 在 CleverTap 插件配置中 :

    "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 博览会插件更改日志。 。 。 .

QQ 样本应用程序

要看到一个回想原生博览会的应用 运行与智能Tap SDK,检查我们 gitHub 上的样本应用程序。 。 。 .

* 反馈

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

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

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

帮助和问题?

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

版本与发布记录

@clevertap/clevertap-expo-plugin 共发布 6 个版本,首次发布于 2025/03/12;过去 12 个月发布了 3 个版本。

版本发布日期距今
1.1.0latest2026/09/072 个月前
1.0.02026/03/267 个月前
0.0.42026/01/0610 个月前
0.0.32025/10/301 年前
0.0.22025/05/261.5 年前
0.0.12025/03/121.7 年前

关于 @clevertap/clevertap-expo-plugin 的常见问题

@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 和提交记录判断。