@ digia- 约定/ 核心
反应原生 SDK 用于 Digia 启动它提供应用经验(努力, 在Android和iOS上的React Index apps.
如何运作
@digia-engage/core 包好本地的Digia 接触Android和iOS SDKs. 当地人
SDKs 装入运动,决定显示什么, 并做起推力, 调查和内线
内容。 工具提示和聚光灯指南在React Industrial中通过
<DigiaHost />锁定到您的 <DigiaAnchorView> 要素.
运动是由CEP(CleverTap、WebEngage、或MoEngage)引发的
@digia-engage/* 软件包)或由您的应用程序通过 Digia.triggerCampaign()。 。 。 .
| 运动类型 | 编剧: |
|---|---|
| 标签( 对话框, 底页) | 原生 SDK |
| 调查 | 原生 SDK |
| 内行(班机、旋转木马) | 原生 SDK 内置 <DigiaSlotView> |
| 指南(工具提示、聚光灯) | 内出土反应 <DigiaHost /> |
所需资源
| 最低 | |
|---|---|
| 机器人 | minSdk 24; Digia 启动Android SDK 3.x(自动推入) |
| iOS系统 | iOS 15.0; Digia Enter iOS SDK 4.x (自动推入) |
安装
npm install @digia-engage/core
# or
yarn add @digia-engage/core
自动链接处理本地设置 .
iOS 模块
Digia Involution iOS SDK 被发布到 Digia CocoaPods spec repo. 点可口可乐Pods在它.
展览 : 将配置插件添加到 app.json运行 npx expo prebuild数字 :
{ "expo": { "plugins": ["@digia-engage/core"] } }
裸体反应原生 : 将这些行添加到 ios/Podfile,保持此顺序:
source 'https://github.com/Digia-Technology-Private-Limited/digia-podspecs.git'
source 'https://cdn.cocoapods.org/'
然后安装吊舱并重建应用程序:
cd ios && pod install
要使用CEP,请同时安装其软件包: @digia-engage/clevertap, (中文(简体) ),
@digia-engage/webengage,或 @digia-engage/moengage。 。 。 .
使用量
1 — SDK 初始化
打电话 Digia.initialize() 一次,尽可能早(最多 App.tsx:
import { Digia } from '@digia-engage/core';
await Digia.initialize({
apiKey: 'YOUR_API_KEY',
environment: 'production', // or 'sandbox'
logLevel: 'error',
});
initialize() 最多等待2秒, 运动可以加载, 如果
装入失败 .
自定义字体
使用 Expo 软件嵌入字体 expo-font 配置插件或
您的本地项目,然后将注册的姓氏传给 Digia Evolution.
自动适用由机板提供的权重.
await Digia.initialize({
apiKey: 'YOUR_API_KEY',
fontFamily: 'Inter',
});
家庭必须登记为土著多面家庭。 如果被要求 面部不可用,操作系统执行正常字体倒置.
2 — 挂载 <DigiaHost />
地点 <DigiaHost /> 一次在您的组件树根后
导航容器。 它使工具指针和聚光灯向导.
// app/_layout.tsx (Expo Router) or App.tsx
import { DigiaHost } from '@digia-engage/core';
export default function RootLayout() {
return (
<>
<Stack />
<DigiaHost />
</>
);
}
3 — 轨迹屏幕变化
import { Digia } from '@digia-engage/core';
<NavigationContainer
onStateChange={() => {
const route = navRef.getCurrentRoute();
if (route) Digia.setCurrentScreen(route.name);
}}
>
4-为指导运动增加主播
环绕任何您想要工具提示或聚光灯指向的 UI 元素 :
import { DigiaAnchorView } from '@digia-engage/core';
<DigiaAnchorView anchorKey="home_banner_btn">
<Button title="Banner" />
</DigiaAnchorView>
5——为内线运动增加插槽
import { DigiaSlotView } from '@digia-engage/core';
// Auto-sizes to the content height
<DigiaSlotView placementKey="home_banner" />
6-触发运动
带CEP 安装其软件包,并在之后注册 initialize()数字 :
import { DigiaCleverTapPlugin } from '@digia-engage/clevertap';
await Digia.initialize({ apiKey: 'YOUR_API_KEY' });
Digia.register(new DigiaCleverTapPlugin());
register() 如果 CEP 软件包没有安装或链接,则拒绝 。 每个CEP
软件包的 README 列出了它需要的额外设置 .
从你的应用程序 ——按键显示运动:
const { accepted, dropReason } = await Digia.triggerCampaign('welcome_tour');
if (!accepted) console.warn(`Not shown: ${dropReason}`);
dropReason 例如,解释拒绝的理由 frequency_capped, (中文(简体) ),
screen_not_targeted, (中文(简体) ), unknown_campaign_key,或 not_ready 在竞选期间
还装入。 通过第二个参数来推翻竞选的变量
这个快递.
7——(备选)处理行动
只登记您的应用程序拥有的动作 。 配置的处理器抑制 SDK 倒置 :
await Digia.initialize({
apiKey: 'YOUR_API_KEY',
actionHandlers: {
customKV: (payload) => handleCustomAction(payload),
deepLink: (url) => router.push(url),
openURL: (url) => openInAppBrowser(url),
},
linking: {
routeViaSystemLinking: true,
inAppBrowser: defaultInAppBrowser, // requires react-native-inappbrowser-reborn
},
});
当屏幕停止拥有动作时, 处理器可以在初始化后被替换并清除 :
Digia.setCustomKVHandler((payload) => handleCustomAction(payload));
Digia.setCustomKVHandler(null);
8——(备选) 识别用户
Digia.setUserId('user-123'); // after login
Digia.clearUserId(); // on logout
Digia.clearAllInlineContent(); // drop the previous user's inline content
API 参考
Digia
| 方法 | 签署 | 说明 |
|---|---|---|
initialize | (config: DigiaConfig) => Promise<void> | 初始化 SDK. 先打个电话. |
register | (plugin: DigiaPlugin) => Promise<void> | 附加其 CEP 插件 @digia-engage/* 软件包。 以后再打给你 initialize()。 。 。 . |
unregister | (plugin: DigiaPlugin | string) => void | 忘了注册,然后可以重新注册。 CEP在应用程序重新启动前一直保持附加状态. |
triggerCampaign | (campaignKey: string, variables?: Record<string, string>) => Promise<{ presentationId: string; accepted: boolean; dropReason: string | null }> | 按键显示竞选活动 . |
setCurrentScreen | (name: string) => void | 通知活动屏幕的 SDK . |
setThemeMode | (mode: 'auto' | 'light' | 'dark') => void | 改变竞选的外表. |
setUserId | (userId: string) => void | 将用户身份与分析联系起来。 登录后调用. |
clearUserId | () => void | 清除用户标识 。 调用登录. |
clearInlineContent | (...placementKeys: string[]) => void | 清除给定位置的内置内容 . |
clearAllInlineContent | () => void | 清除每个位置的内含内容 . |
setCustomKVHandler | (handler: CustomKVHandler | null) => void | 替换或清除自定义 KV 覆盖 . |
setDeepLinkHandler | (handler: DeepLinkHandler | null) => void | 替换或清除深链接覆盖 . |
setOpenURLHandler | (handler: OpenURLHandler | null) => void | 替换或清除外部 URL 覆盖 . |
handleDeepLink | (url: string) => boolean | 如果 url 是 SDK 的调试深链接; 返回 false 否则. |
openDebugSettings | () => void | 打开只调试设置屏幕 。 释放中没有建立. |
registerAnchor 编号 : unregisterAnchor | —— 说 | 折旧 没有. <DigiaAnchorView> 登记本身. |
DigiaConfig
| Prop | 类型 | 默认 | 说明 |
|---|---|---|---|
apiKey | string | —— 说 | 要求. 您的 Digia 启动 API 密钥 . |
environment | 'production' | 'sandbox' | 'production' | 目标环境. |
logLevel | 'none' | 'error' | 'verbose' | 'error' | 日志动词. |
themeMode | 'auto' | 'light' | 'dark' | 'auto' | 竞选的出现. auto 遵循系统主题. |
fontFamily | string | —— 说 | 所有竞选文本所用的已注册字体家族 . |
actionHandlers | DigiaActionHandlers | {} | 已打入自定义 KV, 深链接, 和开放的 URL 覆盖 . |
linking.routeViaSystemLinking | boolean | true | 使用 Linking.openURL 用于 URL 动作. |
linking.inAppBrowser | InAppBrowserAdapter | —— 说 | 所需经费 open_url 与 presentation: 'in_app'。 。 。 . |
<DigiaHost />
没有道具。 渲染器工具提示和聚光灯指南。 把它放在应用程序根上一次.
<DigiaAnchorView>
| Prop | 类型 | 说明 |
|---|---|---|
anchorKey | string | 要求. 一定跟台阶相符 anchorKey 在竞选配置. |
...ViewProps | —— 说 | 所有标准反应原生 View 道具被传送. |
<DigiaSlotView>
在命名的布局中,Renders内置竞选内容(banners,卡片). 当没有为槽活动时折叠到零高度 .
| Prop | 类型 | 说明 |
|---|---|---|
placementKey | string | 要求. 一定跟竞选的一致 slotKey。 。 。 . |
style | ViewStyle? | 传递明确 height 以修正大小;否则自动大小. |
许可证
业务来源许可证1.1(BUSL-1.1) · 叮当技术私人有限公司——见 自由主义