# @devrev/sdk-react-native 中文文档

规范地址：https://npmcn.com/package/%40devrev/sdk-react-native/

版本：2\.3\.12
npm 元数据更新时间：2026-10-22T18:00:16.070Z
中文译文更新时间：2026-11-12T04:05:26.642Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40devrev/sdk-react-native
原文对照：https://npmcn.com/package/%40devrev/sdk-react-native/?lang=original
项目主页：https://github.com/devrev/devrev-sdk-react-native#readme
源码仓库：https://github.com/devrev/devrev-sdk-react-native

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

- 包体积（解压后）：250 kB，60 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react ^19\.0\.0，react-native \>=0\.79\.0
- 首次发布：2024-07-08T14:27:26.963Z
- 最新版本发布：2026-10-22T18:00:15.166Z
- 近 30 天下载量：31116（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：45（近 12 个月 19 个）

## 中文简介

DevRev SDK,用于将DevRev服务整合到您的 React Industrial app中.

## 安装

```sh
npm install @devrev/sdk-react-native
```

也可以使用：`pnpm add @devrev/sdk-react-native`、`yarn add @devrev/sdk-react-native`、`bun add @devrev/sdk-react-native`

## README

# DevRev SDK 反应原生和博览

DevRev SDK,用于将DevRev服务整合到您的React Introduct和Expo应用程序中.

-   [DevRev SDK 反应原生和博览](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-devrev-sdk-for-react-native-and-expo)
    -   [快速启动](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-quickstart)
        -   [所需资源](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-requirements)
        -   [安装](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-installation)
            -   [博览](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-expo)
        -   [设置 DevRev SDK](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-set-up-the-devrev-sdk)
            -   [更新特性配置](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-update-the-feature-configuration)
            -   [特性配置参考](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-feature-configuration-reference)
                -   [支持部件主题选项](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-support-widget-theme-options)
    -   [特征](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-features)
        -   [鉴定](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-identification)
            -   [识别未验证的用户](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-identify-an-unverified-user)
            -   [识别已核实的用户](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-identify-a-verified-user)
                -   [生成 AAT](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-generate-an-aat)
                -   [将您的 AAT 交换为会话符](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-exchange-your-aat-for-a-session-token)
                -   [识别已核实的用户](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-identify-the-verified-user)
            -   [更新用户](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-update-the-user)
            -   [注销](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-logout)
        -   [身份模型](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-identity-model)
            -   [属性](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-properties)
                -   [用户特性](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-user-traits)
                -   [组织特征](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-organization-traits)
                -   [账户特征](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-account-traits)
        -   [支持聊天](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-support-chat)
            -   [创建新支持对话框](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-create-a-new-support-conversation)
        -   [应用程序链接处理](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-in-app-link-handling)
        -   [应用链接回调](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-in-app-link-callback)
        -   [动态主题配置](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-dynamic-theme-configuration)
        -   [分析](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-analytics)
        -   [会话分析](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-session-analytics)
            -   [进入或退出](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-opt-in-or-out)
            -   [会话录音](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-session-recording)
            -   [会话属性](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-session-properties)
            -   [遮罩敏感数据](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-mask-sensitive-data)
            -   [网络视图中的遮罩元素](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-mask-elements-inside-web-views)
            -   [用户互动跟踪](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-user-interaction-tracking)
            -   [计时器](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-timers)
            -   [抓取错误](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-capture-errors)
            -   [音轨屏幕](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-track-screens)
            -   [管理屏幕过渡( 只有Android)](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-manage-screen-transitions-android-only)
        -   [推动通知](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-push-notifications)
            -   [配置](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-configuration)
            -   [推进通知登记册](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-register-for-push-notifications)
            -   [未从按键通知注册](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-unregister-from-push-notifications)
            -   [处理按键通知](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-handle-push-notifications)
                -   [机器人](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-android)
                -   [iOS系统](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-ios)
    -   [样本应用( 没有框架)](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-sample-app-without-framework)
    -   [软件样本( Expo)](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-sample-app-expo)
    -   [解决问题](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-troubleshooting)
        -   [ProGuard (仅限机器人)](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-proguard-android-only)
    -   [移徙指南](https://npmcn.com/package/%40devrev/sdk-react-native/#readme-migration-guide)

## 快速启动

### 所需资源

-   反应原生地0.79.0.
-   对于"博览会"的应用,50.0.0或后期的"博览会".
-   Android:最低API24级.
-   iOS:最低部署指标15.1.

### 安装

要安装 DevRev SDK, 请运行以下命令 :

```bash
npm install @devrev/sdk-react-native
```

#### 博览

1.  要安装 DevRev SDK, 请运行以下命令 :
    
    ```bash
    npx expo install @devrev/sdk-react-native-expo-plugin
    ```
    
2.  配置您的 Expo 配置插件 `app.json` 或者说 `app.config.js`数字 :
    
    ```json
    {
      "expo": {
        "plugins": [
          "@devrev/sdk-react-native-expo-plugin"
        ]
      }
    }
    ```
    
3.  重建您的应用程序 :
    
    ```bash
    npx expo prebuild --clean
    ```
    

### 设置 DevRev SDK

1.  打开 DevRev 网络应用 [https://app.devrev.ai (英语)](https://app.devrev.ai/) 进入 **设置** 页 次.
2.  下 **PLuG 设置** 复制以下的值 **您唯一的 App 标识**。 。 。 .
3.  使用获得的证书在您的应用程序中配置 DevRev SDK .

> \[尖叫声\] DevRev SDK 必须先被配置,然后才能使用它的任何特性.

一旦配置 API 执行, SDK 即可使用 .

```typescript
DevRev.configure(appID)
```

要在设置时提供特性配置, 请调用接受它的超载:

```typescript
DevRev.configure(appID, featureConfiguration)
```

对于默认行为,请调用更简单的形式:

```typescript
DevRev.configure('abcdefg12345')
```

要自定义诸如帧抓取、自动启动记录或主题偏好等行为,请通过完整 `FeatureConfiguration` 对象 :

```typescript
DevRev.configure('abcdefg12345', {
  enableFrameCapture: false,
  autoStartRecording: false,
  prefersDialogMode: false,
  alwaysUseRemoteConfig: true,
  supportWidgetTheme: {
    prefersSystemTheme: true,
  },
  enableSupportChatStreaming: true,
  supportWidgetArticleSearchFilters: articleSearchFilters,
});
```

#### 更新特性配置

您可以在不重新配置SDK的情况下调整特性配置. 通过 a **满** `FeatureConfiguration` 对象( 所有属性都需要):

```typescript
DevRev.updateFeatureConfiguration({
  enableFrameCapture: true,
  autoStartRecording: true,
  prefersDialogMode: false,
  alwaysUseRemoteConfig: true,
  supportWidgetTheme: {
    prefersSystemTheme: true,
  },
  enableSupportChatStreaming: true,
  supportWidgetArticleSearchFilters: articleSearchFilters,
});
```

#### 特性配置参考

`FeatureConfiguration` 控制 SDK 初始设置和调用时的表现 `DevRev.updateFeatureConfiguration(...)`。在提供特性配置时,需要所有属性.

| 财产 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `enableFrameCapture` | `boolean` | `true` | 启用会话重放所使用的屏幕捕获管道 . |
| `autoStartRecording` | `boolean` | `true` | SDK完成远程配置后自动开始录制. |
| `prefersDialogMode` | `boolean` | `false` | 支持 UI (仅Android) 的偏好对话框模式 . |
| `alwaysUseRemoteConfig` | `boolean` | `true` | 总是使用远程配置 . |
| `supportWidgetTheme` | `SupportWidgetTheme` | —— 说 | 控制应用程序中支持部件的外观,包括动态主题行为. |
| `enableSupportChatStreaming` | `boolean?` | `false` | 何时 `true`,允许在PLuG对话(WebSocket streaming,乐观的UI,动画文本)中实时AI代理响应流出. |
| `supportWidgetArticleSearchFilters` | `ArticleSearchFilters?` | —— 说 | PLuG文章搜索的可选过滤器(widget和CMDK). 当支持部件准备好时自动应用 . |

##### 支持部件主题选项

`SupportWidgetTheme` 让您微调支持 UI 。 使用 `supportWidgetTheme` 属性在您的特性配置中.

```typescript
const customTheme = {
  prefersSystemTheme: false,
  primaryTextColor: '#1F2933',
  accentColor: '#F97316',
  spacing: {
    bottom: '20px',
    side: '16px',
  },
  conversationPageOptions: {
    headerText: 'Support',
    subheaderText: 'We typically reply in a few minutes',
  },
};
```

| 财产 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `prefersSystemTheme` | `boolean` | `true` | 跟踪设备的外观, 当 `true`; 否则使用您的自定义颜色 . |
| `primaryTextColor` | `string?` | —— 说 | 十六进制颜色字符串( 如 . `'#000000'`, (中文(简体) ), `'#1F2933'`用于支持部件中的主文本. |
| `accentColor` | `string?` | —— 说 | 十六进制颜色字符串( 如 . `'#F97316'`, (中文(简体) ), `'#FF0000'`)应用到按钮和亮点上. |
| `spacing` | `{ [key: string]: string }?` | —— 说 | 类似 CSS 的间距覆盖( U)`bottom` 财务报告和审定财务报表 `side` 密钥被识别). |
| `conversationPageOptions` | `ConversationPageOptions?` | —— 说 | 自定义对话页头品牌. |

##### 对话页面选项

`ConversationPageOptions` 自定义支持对话页面上显示的头条字符串。 这两个字段都是可选的——省略时使用服务器配置的默认.

| 财产 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `headerText` | `string?` | —— 说 | 自定义对话头的文本 . |
| `subheaderText` | `string?` | —— 说 | 自定义对话子标题的文本 。 通过一个空格( O)`' '`使一个空白小标题. |

## 特征

### 鉴定

要访问DevRev SDK的某些功能,需要用户识别.

用户登录后, 身份识别功能应适当放置在您的应用程序中 。 如果您在应用程序发布时有可用的用户信息,请在程序启动后调用此功能 `DevRev.configure(appID: string)` 方法.

> \[TIP\] 如果您之前没有识别过用户,DevRev SDK会在SDK配置后立即自动为您创建一个匿名用户.

> \[TIP\] 这个 `Identity` 结构允许用户、组织和账户特性中的自定义字段。 这些字段必须通过 DevRev app 配置后才能被使用. 更多信息,参见 [对象定制](https://devrev.ai/docs/product/object-customization)。 。 。 .

可以从下列方法中选择识别应用程序中的用户:

#### 识别未验证的用户

未经验证的识别方法可以识别具有独特识别特征的用户,但无法用DevRev后端验证其身份.

```typescript
DevRev.identifyUnverifiedUser(userID: string, organizationID?: string)
```

#### 识别已核实的用户

经核实的识别方法用于识别DevRev平台内您系统独有的标识符的用户. 通过您和 DevRev 后端之间的符号交换程序进行验证.

确定经核实的用户的步骤如下:

1.  为您的系统生成一个 AAT( 最好是通过您的后端) .
2.  将您的 AAT 交换为您的系统每个用户的会话符 .
3.  将用户标识符和交换会话符号传递到 `DevRev.identifyVerifiedUser(userID: string, sessionToken: string)` 方法.

> \[尖叫声\] 出于安全考虑,它是 **强烈建议** 在您的后端执行符号交换,以防止显示您的应用程序访问符号( AAT) .

##### 生成 AAT

1.  打开 DevRev 网络应用 [https://app.devrev.ai (英语)](https://app.devrev.ai/) 进入 **设置** 页 次.
2.  打开 **PLUG 键** 页 次.
3.  在 **应用程序访问符** 面板,单击 **新符号** 复制显示的标志.

> \[尖叫声\] 确保复制生成的应用程序访问令牌, 因为您无法再次查看它 .

##### 将您的 AAT 交换为会话符

要继续识别用户, 您需要将您的 AAT 交换为会话符 。 这个步骤有助于您在 DevRev 平台内识别您系统的一个用户 .

以下是一个简单的 API 请求 DevRev 后端将您的 AAT 交换为会话符号的例子 :

> \[尖叫声\] 确保您替换 `<AAT>` 财务报告和审定财务报表 `<YOUR_USER_ID>` 与实际值.

```bash
curl \
--location 'https://api.devrev.ai/auth-tokens.create' \
--header 'accept: application/json, text/plain, */*' \
--header 'content-type: application/json' \
--header 'authorization: <AAT>' \
--data '{
  "rev_info": {
    "user_ref": "<YOUR_USER_ID>"
  }
}'
```

API 呼叫的响应包含一个会话符号,您可以在您的应用程序中使用经过验证的识别方法.

> \[尖叫声\] 作为一个良好做法, **** app 应当从 **** 后端在应用程序发布会或任何相关的应用程序生命周期事件.

##### 识别已核实的用户

将用户标识符和交换会话符号传递到已核实的识别方法 :

```typescript
DevRev.identifyVerifiedUser(userID: string, sessionToken: string)
```

#### 更新用户

您可以使用以下方法更新用户信息:

```typescript
DevRev.updateUser(identity: Identity)
```

> \[尖叫声\] 这个 `userID` 属性无法更新.

#### 注销

您可以使用以下方法登录当前用户 :

```typescript
DevRev.logout(deviceID: string)
```

### 身份模型

这个 `Identity` 界面用于在识别用户或更新其细节时提供用户、组织和账户信息。 此类主要用于: `identifyUnverifiedUser` 财务报告和审定财务报表 `updateUser` 方法。 。 .

#### 属性

这个 `Identity` 类包含以下属性:

| 财产 | 类型 | 需求 | 说明 |
| --- | --- | --- | --- |
| `userRef` | `string` | ✅ | 用户独有的标识符 |
| `organizationRef` | `string?` | ❌ | 用户组织的标识符 |
| `accountRef` | `string?` | ❌ | 用户账户的标识符 |
| `userTraits` | `UserTraits?` | ❌ | 关于用户的更多信息 |
| `organizationTraits` | `OrganizationTraits?` | ❌ | 关于该组织的补充资料 |
| `accountTraits` | `AccountTraits?` | ❌ | 关于账户的补充资料 |

> \[注\] 定义为用户、组织和账户特征的自定义字段属性必须在 DevRev 网络应用中配置 **在此之前** 他们可以使用。 见 [对象定制](https://devrev.ai/docs/product/object-customization) 更多信息.

##### 用户特性

这个 `UserTraits` 类包含用户的详细信息 :

> \[注\] 所有属性在 `UserTraits` 是可选的.

| 财产 | 类型 | 说明 |
| --- | --- | --- |
| `displayName` | `string?` | 用户的显示名称 |
| `email` | `string?` | 用户的电子邮件地址 |
| `fullName` | `string?` | 用户的全名 |
| `description` | `string?` | 用户描述 |
| `customFields` | `{ [key: string]: any }` | DevRev 配置的自定义字段词典 |

##### 组织特征

这个 `OrganizationTraits` 课程载有该组织的详细资料:

> \[注\] 所有属性在 `OrganizationTraits` 是可选的.

| 财产 | 类型 | 说明 |
| --- | --- | --- |
| `displayName` | `string?` | 组织显示的名称 |
| `domain` | `string?` | 组织领域 |
| `description` | `string?` | 组织说明 |
| `phoneNumbers` | `string[]?` | 该组织的电话号码 |
| `tier` | `string?` | 组织的级别或计划级别 |
| `customFields` | `{ [key: string]: any }` | DevRev 配置的自定义字段词典 |

##### 账户特征

这个 `AccountTraits` 分类包含账户的详细信息 :

> \[注\] 所有属性在 `AccountTraits` 是可选的.

| 财产 | 类型 | 说明 |
| --- | --- | --- |
| `displayName` | `string?` | 账户的显示名称 |
| `domains` | `string[]?` | 与账户有关的域阵列 |
| `description` | `string?` | 账户说明 |
| `phoneNumbers` | `string[]?` | 账户的电话号码序列 |
| `websites` | `string[]?` | 账户相关网站阵列 |
| `tier` | `string?` | 账户的层次或计划层次 |
| `customFields` | `{ [key: string]: any }` | DevRev 配置的自定义字段词典 |

### 支持聊天

一旦用户身份确认完成,您就可以开始使用我们DevRev SDK支持的聊天(对话)对话框. 支持聊天功能可以从最上层屏幕显示为模式屏幕.

```typescript
DevRev.showSupport()
```

#### 创建新支持对话框

您可以直接从您的应用程序启动新的支持对话 。 这种方法显示支持聊天屏幕,并同时创建一个新的对话.

```typescript
DevRev.createSupportConversation(prefillMessage?: string)
```

您可以选择通过纯文本消息预填对话输入字段 :

```typescript
DevRev.createSupportConversation('I need help with billing for order #12345')
```

### 应用程序链接处理

在某些情况下,从支持聊天中打开的链接是在应用程序中而不是浏览器中打开的. 您可以调用以下方法来控制在链接打开后聊天模式是否应当被删除 :

```typescript
DevRev.setShouldDismissModalsOnOpenLink(value: boolean)
```

设置此旗帜为真 应用系统打开链接的默认行为, 包括删除任何 DevRev 模式屏幕以方便处理您自己的深层链接 .

### 应用链接回调

> \[TIP\] 这个功能只在Android上得到支持.

对于需要自定义处理的情景,可以通过以下方法捕捉支持聊天的链接:

```typescript
DevRev.setInAppLinkHandler((url) => {
    // Perform an action here.
});
```

### 动态主题配置

DevRev SDK 允许您根据系统外观动态配置主题,或者使用 DevRev 门户网站上配置的主题. 默认情况下,主题为动态并遵循系统外观.

```typescript
DevRev.setPrefersSystemTheme(value: boolean)
```

### 分析

DevRev SDK 允许您使用属性地图发送自定义分析事件 。 您可以使用以下函数跟踪这些事件:

```typescript
DevRev.trackEvent(name: string, properties?: { [key: string]: string })
```

### 会话分析

DevRev SDK 提供了会话分析功能来帮助您了解用户如何与您的应用程序互动.

#### 进入或退出

默认选择会话分析功能, 允许它们从头开始 。 但是,您可以使用以下方法选择退出:

```typescript
DevRev.stopAllMonitoring()
```

选择返回,使用下列方法:

```typescript
DevRev.resumeAllMonitoring()
```

#### 会话录音

您可以启用会话记录来记录用户与您的应用程序的互动 .

> \[注\] 会话录制功能是选出并默认启用.

会话录音功能包括控制录音的下列方法:

| 方法 | 行动 |
| --- | --- |
| `DevRev.startRecording()` | 开始会话录音. |
| `DevRev.stopRecording()` | 停止会话录音并上传到门户网站. |
| `DevRev.pauseRecording()` | 暂停正在进行的会话录音. |
| `DevRev.resumeRecording()` | 恢复暂停的会话录音. |
| `DevRev.processAllOnDemandSessions()` | 停止正在进行的用户录制,并随当前录制一起发送所有点播会话. |

#### 会话属性

您可以在会话录音中添加自定义属性来帮助您理解会话的背景. 属性被定义为字符串值的映射.

```typescript
DevRev.addSessionProperties(properties: { [key: string]: string })
```

要在用户登录或会话结束后清除会话属性,请使用以下方法:

```typescript
DevRev.clearSessionProperties()
```

#### 遮罩敏感数据

为了保护敏感数据,DevRev SDK提供了一个自动伪装功能,在发送到服务器之前先遮住数据. 密码文本字段等输入视图自动被遮蔽.

虽然自动化妆特性对于大多数情况都足够,但可以使用下列方法手动将额外视图标记为敏感:

```typescript
DevRev.markSensitiveViews(tags: any[])
```

如果任何先前被蒙蔽的视图需要被解开,可以使用以下方法: 1

```typescript
DevRev.unmarkSensitiveViews(tags: any[])
```

例如:

```typescript
import * as DevRev from '@devrev/sdk-react-native';
import { View, Text, findNodeHandle } from "react-native";
import { useRef, useEffect } from "react";

const YourComponent = () => {
  const sensitiveViewRef = useRef(null);
  const insensitiveViewRef = useRef(null);

  useEffect(() => {
    // Mark sensitive view
    const sensitiveId = findNodeHandle(sensitiveViewRef.current);
    if (sensitiveId) {
      DevRev.markSensitiveViews([sensitiveId]);
    }

    // Unmark insensitive view
    const insensitiveId = findNodeHandle(insensitiveViewRef.current);
    if (insensitiveId) {
      DevRev.unmarkSensitiveViews([insensitiveId]);
    }
  }, []);

  return (
    <View>
      <View ref={sensitiveViewRef}>
        <Text>Sensitive content (masked in recordings)</Text>
      </View>
      <View ref={insensitiveViewRef}>
        <Text>Insensitive content (visible in recordings)</Text>
      </View>
    </View>
  );
};

export default YourComponent;
```

#### 网络视图中的遮罩元素

将元素标记为网络视图中的敏感元素( Name`WebView`,应用 `devrev-mask` CSS课. 要解开标记,请使用 `devrev-unmask`。 。 。 .

-   将元素标为遮盖 :
    
    ```html
    <label class="devrev-mask">OTP: 12345</label>
    ```
    
-   将元素标为已卸出:
    
    ```html
    <input type="text" placeholder="Enter Username" name="username" required class="devrev-unmask">
    ```
    

#### 用户互动跟踪

DevRev SDK 自动跟踪用户互动,如自带,刷相,和滚动等. 然而,在某些情况下,您可能想要禁用此跟踪,以防止敏感用户动作被记录.

改为: **暂时禁用** 用户交互跟踪,使用下列方法:

```typescript
DevRev.pauseUserInteractionTracking()
```

改为: **恢复** 用户交互跟踪,使用下列方法:

```typescript
DevRev.resumeUserInteractionTracking()
```

#### 计时器

DevRev SDK提供了一个计时器机制来测量用于特定任务的时间,允许您跟踪事件如响应时间,加载时间,或任何其他基于持续时间的度量.

机制采用平衡起止方法,两者都接受定时器名称和属性的可选词典.

要启动计时器,请使用以下方法:

```typescript
DevRev.startTimer(name: string, properties: { [key: string]: string })
```

停止计时器,使用以下方法: 1

```typescript
DevRev.endTimer(name: string, properties: { [key: string]: string })
```

#### 抓取错误

您可以使用 `captureError` 函数.

这保证了即使错误在您的应用程序中被处理,它仍将被记录为诊断.

```typescript
DevRev.captureError(
    error: Error | string,
    tag: string
)
```

**示例**

```typescript
try {
} catch (error) {
    DevRev.captureError(
        error,
        'network-failure'
    );
}
```

**有错误的示例 :**

```typescript
try {
    throw new Error('Something went wrong');
} catch (error) {
    DevRev.captureError(error, 'custom-error');
}
```

#### 音轨屏幕

DevRev SDK提供自动屏幕跟踪,帮助您了解用户如何通过您的应用导航. 尽管屏幕自动被跟踪,但可以使用以下方法手动跟踪屏幕:

```typescript
DevRev.trackScreenName(name: string)
```

#### 管理屏幕过渡( 只有Android)

DevRev SDK允许跟踪屏幕过渡,以了解您的应用程序内的用户导航. 您可以使用下列方法手动更新状态:

```javascript
// Mark the transition as started.
DevRev.setInScreenTransitioning(true)

// Mark the transition as ended.
DevRev.setInScreenTransitioning(false)
```

### 推动通知

您可以配置您的应用程序来接收来自 DevRev SDK 的驱动通知 。 SDK能够处理按压通知,并根据通知的内容执行动作.

DevRev 后端向您的应用程序发送了按下通知,以通知用户支持聊天中的新消息.

#### 配置

要接收按压通知, 您需要遵循您在 [推动通知](https://developer.devrev.ai/sdks/mobile/push-notifications) 节.

#### 推进通知登记册

> \[TIP\] Push通知要求SDK已经配置,用户已经确定,以确保交付给正确的用户.

DevRev SDK 提供了一种接收推力通知的设备注册的方法 。 您可以使用以下方法注册按压通知:

```typescript
DevRev.registerDeviceToken(deviceToken: string, deviceID: string)
```

在Android设备上 `deviceToken` 应该是Firebase Cloud Message (FCM) 符号值,而在 iOS 设备上,应该是 Apple Push 通知服务(APNs)符号.

#### 未从按键通知注册

如果您的应用程序不再需要接收推取通知,您可以解除设备的注册.

使用下列方法解除设备的注册:

```typescript
DevRev.unregisterDevice(deviceID: string)
```

该方法需要设备标识符,该标识符应与登记设备时所使用的标识符相同.

#### 处理按键通知

##### 机器人

关于Android,通知作为数据电文执行,以提供灵活性。 然而,这意味着自动点击处理不可用. 要处理通知点击,开发者需要拦截点击事件,取出有效载荷,并传递给指定的处理方法. 这种自定义方法使Android应用程序能够进行有针对性的通知处理.

处理通知书时使用下列方法:

```typescript
DevRev.processPushNotification(payload: string)
```

在这里 `message` 通知有效载荷中的物体需要传递到此功能.

例如:

```typescript
const notificationPayload = {
    // message may be nested based on the notification library
    "message": {
        // ... (the entire message object)
    }
};
const messageJson = notificationPayload["message"];
DevRev.processPushNotification(JSON.stringify(messageJson));
```

##### iOS系统

在iOS上 `AppDelegate` 必须更新以拦截点击的通知并将有效载荷转发给SDK.

单位 `didFinishLaunchingWithOptions`,设置 `UNUserNotificationCenter` 代表:

```swift
UNUserNotificationCenter.current().delegate = self
```

执行 `userNotificationCenter(_:didReceive:)` 将通知有效载荷传递给SDK:

```swift
func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    didReceive response: UNNotificationResponse
) async {
    await DevRev.processPushNotification(
        response.notification.request.content.userInfo
    )
}
```

## 样本应用( 没有框架)

作为我们的一部分,我们为DevRev SDK 反应土著提供了使用案例的软件样本 [公共仓库](https://github.com/devrev/devrev-sdk-react-native). 要设置和运行样本应用软件,遵循这些步骤:

1.  转到样本目录 :
    
    ```bash
    cd sample/react-native
    ```
    
2.  安装依赖性 :
    
    ```bash
    yarn install
    ```
    
3.  对于iOS,运行:
    
    ```bash
    pod install --project-directory=ios --repo-update
    ```
    
4.  启动 React 本地开发服务器 :
    
    ```bash
    npx react-native start
    ```
    
5.  使用 Android 运行应用程序 :
    
    ```bash
    npx react-native run-android
    ```
    
    或打开 `android` 在Android Studio的目录中运行应用程序.
6.  使用 iOS 运行应用程序 :
    
    ```bash
    npx react-native run-ios
    ```
    
    打开 `ios/DevRevSDKSampleRN.xcworkspace` 在Xcode中运行应用程序.

## 软件样本( Expo)

作为我们的一部分,已经为世博会提供了带有DevRev SDK使用案例的样本应用程序 [公共仓库](https://github.com/devrev/devrev-sdk-react-native). 要设置和运行样本应用软件,遵循这些步骤:

1.  转到样本目录 :
    
    ```bash
    cd sample/expo
    ```
    
2.  安装依赖性 :
    
    ```bash
    yarn install
    ```
    
3.  运行干净和预建 :
    
    ```bash
    npx expo prebuild --clean
    ```
    
4.  使用 Android 运行应用程序 :
    
    ```bash
    npx expo run:android
    ```
    
    或打开 `android` android Studio中的目录并运行应用程序.
5.  在 iOS 上运行应用程序 :
    
    ```bash
    npx expo run:ios
    ```
    
    打开或打开 `ios/DevRevSDKSample.xcworkspace` 在 Xcode 中运行应用程序.

## 解决问题

-   **问题**:支持聊天不显示. **解决方案**:确保您正确使用其中一种识别方法: `DevRev.identifyUnverifiedUser(...)` 或者说 `DevRev.identifyVerifiedUser(...)`。 。 。 .
    
-   **问题**: 没有收到按键通知. **解决方案**: 确保您的应用程序配置为接收按压通知, 并确保您的设备在 DevRev SDK 注册 .
    

### ProGuard (仅限机器人)

当尝试用 ProGuard 启用为 Android 构建您的应用程序时, 请参考这些共同的问题及其解决方案 .

> \[注\] 你总是可以提到 [Android ProGuard 文档](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization#proguard) 更多信息.

-   **问题**: 缺少类别 `com.google.android.play.core.splitcompat.SplitCompatApplication`。 。 。 . **解决方案**: 在您的 `proguard-rules.pro` 文件 :
    
    ```proguard
    -dontwarn com.google.android.play.core.**
    ```
    
-   **问题**: 由于过渡性蝶形花序依赖而缺级. **解决方案**: 在您的 `proguard-rules.pro` 文件 :
    
    ```proguard
    -keep class io.flutter.** { *; }
    -keep class io.flutter.plugins.** { *; }
    -keep class GeneratedPluginRegistrant { *; }
    ```
    
-   **问题**: 缺少类别 `org.s1f4j.impl.StaticLoggerBinder`。 。 。 . **解决方案**: 在您的 `proguard-rules.pro` 文件 :
    
    ```proguard
    -dontwarn org.slf4j.impl.StaticLoggerBinder
    ```
    

## 移徙指南

如果您正在从遗留的用户Experior SDK迁移到新的 DevRev SDK, 请参考 [移徙指南](https://npmcn.com/package/%40devrev/sdk-react-native/MIGRATION.md) 详细指示和特征等同.

## 常见问题

### @devrev/sdk-react-native 是什么？

DevRev SDK,用于将DevRev服务整合到您的 React Industrial app中\.

### 如何安装 @devrev/sdk-react-native？

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

### @devrev/sdk-react-native 支持 TypeScript 吗？

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

### @devrev/sdk-react-native 支持 ESM 还是 CommonJS？

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

### @devrev/sdk-react-native 可以商用吗？

@devrev/sdk-react-native 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @devrev/sdk-react-native 的下载量有多少？

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

### @devrev/sdk-react-native 还在维护吗？

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

