聪明的博览会插件
导 言
学习如何将 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 上的样本应用程序。 。 。 .
* 反馈
我们高度评价你们的反馈,以提高其稳定性和功能。 如果您遇到任何问题, 有建议, 或者想分享您与插件的经验, 请 :
- 通过 GitHub 问题提交详细的错误报告
- 包括复制任何问题的具体步骤
- 共享您的环境细节( Expo 版本, React Index 版本, 设备信息)
- 未来发布时您想看到的增强或特性建议
您的投入对于这个插件的成功至关重要,并将帮助我们为稳定的发布做准备.
帮助和问题?
如果有问题或担心,可以从"CleverTap Dashboard"中接触到"CleverTap"支援团队.