# @digia-engage/core 中文文档

规范地址：https://npmcn.com/package/%40digia-engage/core/

版本：3\.3\.1
npm 元数据更新时间：2026-11-05T10:13:06.064Z
中文译文更新时间：2026-11-12T12:38:34.627Z
软件包许可：BUSL-1\.1

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

原始 npm 页面：https://www.npmjs.com/package/%40digia-engage/core
原文对照：https://npmcn.com/package/%40digia-engage/core/?lang=original
项目主页：https://github.com/Digia-Technology-Private-Limited/de_rn_core#readme
源码仓库：https://github.com/Digia-Technology-Private-Limited/de_rn_core

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

- 包体积（解压后）：1.2 MB，262 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2026-03-20T07:03:41.388Z
- 最新版本发布：2026-11-05T10:13:05.854Z
- 近 30 天下载量：2525（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：57（近 12 个月 57 个）

## 中文简介

Digia Convention 的回放原生桥 — 让原生Android Compose UI在回放原生应用程序内

## 安装

```sh
npm install @digia-engage/core
```

也可以使用：`pnpm add @digia-engage/core`、`yarn add @digia-engage/core`、`bun add @digia-engage/core`

## README

# @ 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 (自动推入) |

* * *

## 安装

```sh
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`数字 :

```json
{ "expo": { "plugins": ["@digia-engage/core"] } }
```

**裸体反应原生 :** 将这些行添加到 `ios/Podfile`,保持此顺序:

```ruby
source 'https://github.com/Digia-Technology-Private-Limited/digia-podspecs.git'
source 'https://cdn.cocoapods.org/'
```

然后安装吊舱并重建应用程序:

```sh
cd ios && pod install
```

要使用CEP,请同时安装其软件包: `@digia-engage/clevertap`, (中文(简体) ), `@digia-engage/webengage`,或 `@digia-engage/moengage`。 。 。 .

* * *

## 使用量

### 1 — SDK 初始化

打电话 `Digia.initialize()` 一次,尽可能早(最多 `App.tsx`:

```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. 自动适用由机板提供的权重.

```tsx
await Digia.initialize({
  apiKey: 'YOUR_API_KEY',
  fontFamily: 'Inter',
});
```

家庭必须登记为土著多面家庭。 如果被要求 面部不可用,操作系统执行正常字体倒置.

### 2 — 挂载 `<DigiaHost />`

地点 `<DigiaHost />` 一次在您的组件树根后 导航容器。 它使工具指针和聚光灯向导.

```tsx
// app/_layout.tsx (Expo Router) or App.tsx
import { DigiaHost } from '@digia-engage/core';

export default function RootLayout() {
  return (
    <>
      <Stack />
      <DigiaHost />
    </>
  );
}
```

### 3 — 轨迹屏幕变化

```tsx
import { Digia } from '@digia-engage/core';

<NavigationContainer
  onStateChange={() => {
    const route = navRef.getCurrentRoute();
    if (route) Digia.setCurrentScreen(route.name);
  }}
>
```

### 4-为指导运动增加主播

环绕任何您想要工具提示或聚光灯指向的 UI 元素 :

```tsx
import { DigiaAnchorView } from '@digia-engage/core';

<DigiaAnchorView anchorKey="home_banner_btn">
  <Button title="Banner" />
</DigiaAnchorView>
```

### 5——为内线运动增加插槽

```tsx
import { DigiaSlotView } from '@digia-engage/core';

// Auto-sizes to the content height
<DigiaSlotView placementKey="home_banner" />
```

### 6-触发运动

**带CEP** 安装其软件包,并在之后注册 `initialize()`数字 :

```tsx
import { DigiaCleverTapPlugin } from '@digia-engage/clevertap';

await Digia.initialize({ apiKey: 'YOUR_API_KEY' });
Digia.register(new DigiaCleverTapPlugin());
```

`register()` 如果 CEP 软件包没有安装或链接,则拒绝 。 每个CEP 软件包的 README 列出了它需要的额外设置 .

**从你的应用程序** ——按键显示运动:

```tsx
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 倒置 :

```tsx
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
  },
});
```

当屏幕停止拥有动作时, 处理器可以在初始化后被替换并清除 :

```tsx
Digia.setCustomKVHandler((payload) => handleCustomAction(payload));
Digia.setCustomKVHandler(null);
```

### 8——(备选) 识别用户

```tsx
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) · 叮当技术私人有限公司——见 [自由主义](https://npmcn.com/package/%40digia-engage/core/LICENSE)

## 常见问题

### @digia-engage/core 是什么？

Digia Convention 的回放原生桥 — 让原生Android Compose UI在回放原生应用程序内

### 如何安装 @digia-engage/core？

在项目目录运行 npm install @digia-engage/core，或使用 pnpm add / yarn add / bun add。

### @digia-engage/core 支持 TypeScript 吗？

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

### @digia-engage/core 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @digia-engage/core 可以商用吗？

@digia-engage/core 使用 BUSL-1\.1 许可。声明的许可为 BUSL-1\.1，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @digia-engage/core 的下载量有多少？

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

### @digia-engage/core 还在维护吗？

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

