---
title: 通用
summary: "介绍 @ray-js/ray-ipc-utils 工具库中的业务 API，包括原生页面跳转、设备配置等。"
---

# 通用

> 本文介绍 [@ray-js/ray-ipc-utils](https://www.npmjs.com/package/@ray-js/ray-ipc-utils) 中封装的业务 API, 开箱即用, 版本要求为 ^1.1.7。

## 1. 原生页面跳转

**功能说明**

以下功能部分页面实现为原生 (App) 页面, 目前暂不支持自定义开发，如需了解更多，可进一步咨询及反馈给我们。

**请求参数**

| 参数      | 数据类型  | 说明                          | 是否必填 |
| :-------- | :-------- | :---------------------------- | :------- |
| id        | `string`  | 路由ID                        | 是       |
| deviceId  | `string`  | 设备ID                        | 是       |
| theme     | themeType | 主题色                        | 否       |
| params    | `object`  | 路由拼参 (默认值为{})         | 否       |
| isGeneral | `boolean` | 是否通用页面（默认值为false） | 否       |

**themeType 字段详解**

| 参数      | 数据类型                          |
| :-------- | :-------------------------------- |
| undefined | 默认配置值，自适应跟随 APP 主题色 |
| dark      | 暗黑模式                          |
| light     | 明亮模式                          |

### 相册

**路由 id: ipc_album_panel**

**请求示例**

```javascript

import { goToIpcPageNativeRoute } from '@ray-js/ray-ipc-utils';

const id = 'ipc_album_panel';
const deviceId = '1234567890xxxxxx';

const result = await goToIpcPageNativeRoute(id, deviceId);

```

### 回放聚合(推荐)

> 💡 **注意**：`@ray-js/ray-ipc-utils`版本 >= 1.1.11 。

**请求示例**

```javascript

import { goToIpcPlayBackHubNativePage } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const sdCardState = true; // SD卡状态是否正常: 根据业务实际情况传入， 一般取值标准DP sd_status 等于 1 时为 true

const result = await goToIpcPlayBackHubNativePage(deviceId, sdCardState);

```

### 回放

> 💡 **注意** 从 APP 650 版本开始，先前的云回放和 SD 卡回放合二为一，统称为回放。

云回放 id: **camera_cloud_panel** SD 卡回放 id: **camera_playback_panel**。

说明: 回放页面内部会做一定的逻辑判断，如: 设备本身不支持云存储能力，即使跳转云回放路由，也不会展示云存储 Tab

**请求示例**

```javascript

import { goToIpcPageNativeRoute } from '@ray-js/ray-ipc-utils';

const id = 'camera_cloud_panel';
const deviceId = '1234567890xxxxxx';

const result = await goToIpcPageNativeRoute(id, deviceId);

```

### 消息

消息页面涉及各种消息的展示，主要分为：普通事件报警、门铃消息、AI消息等。内部涉及到图片的解密、渲染，视频的解密播放等等。

**路由 id: camera_message_panel**

**请求示例**

```javascript

import { goToIpcPageNativeRoute } from '@ray-js/ray-ipc-utils';

const id = 'camera_message_panel';
const deviceId = '1234567890xxxxxx';

const result = await goToIpcPageNativeRoute(id, deviceId);

```

### 语音管理

**路由 id: ipc_doorbell_voice_manager**

**请求示例**

```javascript

import { goToIpcPageNativeRoute } from '@ray-js/ray-ipc-utils';

const id = 'ipc_doorbell_voice_manager';
const deviceId = '1234567890xxxxxx';

const result = await goToIpcPageNativeRoute(id, deviceId);

```

## 2. 获取摄像头配置接口

**功能说明**

用于获取指定摄像头设备的配置信息，例如: 喇叭、对讲、清晰度、画面放大倍数配置等。

**请求参数**

| 参数     | 数据类型 | 说明   | 是否必填 |
| :------- | :------- | :----- | :------- |
| deviceId | `string` | 设备ID | 是       |

**返回参数 data**

| 参数               | 数据类型 | 说明                 |
| :----------------- | :------- | :------------------- |
| microphoneSettings | `object` | 拾音器相关配置信息   |
| intercomInfo       | `object` | 对讲相关配置信息     |
| videoResolution    | `object` | 清晰度相关配置信息   |
| maxZoomSettings    | `number` | 播放器缩放的最大倍数 |

**字段详解：microphoneSettings**

| 参数                  | 数据类型  | 说明                         |
| :-------------------- | :-------- | :--------------------------- |
| isMicrophoneSupported | `boolean` | 是否支持喇叭功能             |
| defaultMuteMode       | `boolean` | 默认是否静音（true 为静音）  |
| cachedMuteMode        | `boolean` | 最近一次的静音配置（记忆值） |

**字段详解：intercomInfo**

| 参数                   | 数据类型                     | 说明                         |
| :--------------------- | :--------------------------- | :--------------------------- |
| isIntercomSupported    | `boolean`                    | 是否支持对讲                 |
| defaultIntercomMode    | `OneWay` 或 `TwoWay`         | 默认对讲方式                 |
| cachedIntercomMode     | `OneWay` 或 `TwoWay`         | 最近一次的静音配置（记忆值） |
| supportedIntercomModes | `array` ['OneWay', 'TwoWay'] | 支持的对讲方式列表           |

**对讲方式解析**

| 参数   | 说明     | 备注                                                     |
| :----- | :------- | :------------------------------------------------------- |
| OneWay | 单向对讲 | 对讲开启时，关闭喇叭，对讲结束后，喇叭开启，类似对讲机   |
| TwoWay | 双向对讲 | 对讲开启时，打开喇叭，对讲结束后，喇叭开启，类似语音通话 |

**字段详解：videoResolution**

| 参数                 | 数据类型               | 说明                          |
| :------------------- | :--------------------- | :---------------------------- |
| defaultResolution    | `ClarityType`          | 默认清晰度                    |
| cachedResolution     | `ClarityType`          | 最近一次的清晰度配置 (记忆值) |
| availableResolutions | `array`, ClarityType[] | 支持的清晰度列表              |

**清晰度类型详解: ClarityType**

| 参数 | 说明   | 备注                   |
| :--- | :----- | :--------------------- |
| SS   | 省流量 | -                      |
| SD   | 标清   | 常用                   |
| HD   | 高清   | 常用                   |
| UD   | 超清   | -                      |
| SSP  | 超超清 |                        |
| AUTO | 自动   | P2P 4.0 版本及以上支持 |

> 清晰度列表取值，主要以产品 pid 纬度进行配置，默认值 ['HD', 'SD'], 如需配置特殊值，请与项目经理确认反馈配置。

**请求示例**

```javascript

import { getCameraConfigInfo } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const result = await getCameraConfigInfo(deviceId);

```

**返回示例**

```json
{
  "code": 0,
  "data": {
    "microphoneSettings": {
      "isMicrophoneSupported": true,
      "defaultMuteMode": false,
      "cachedMuteMode": true
    },
    "intercomInfo": {
      "isIntercomSupported": true,
      "defaultIntercomMode": "OneWay",
      "cachedIntercomMode": "OneWay",
      "supportedIntercomModes": ["OneWay", "TwoWay"]
    }
  }
}
```

## 3. 是否支持云存储

**功能说明**

用于获取指定摄像头设备的是否具有云存储存储能力。

**请求参数**

| 参数     | 数据类型 | 说明   | 是否必填 |
| :------- | :------- | :----- | :------- |
| deviceId | `string` | 设备ID | 是       |

**返回参数 data**

- true: 支持
- false: 不支持

**请求示例**

```javascript

import { getIsSupportedCloudStorageSync } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const result = await getIsSupportedCloudStorageSync(deviceId);

```

**返回示例**

```json
{
  "code": 0,
  "data": true
}
```

## 4. 获取信号强度值

**功能说明**

用于获取指定摄像头设备出流时的信号强度值。

**请求参数**

| 参数     | 数据类型 | 说明   | 是否必填 |
| :------- | :------- | :----- | :------- |
| deviceId | `string` | 设备ID | 是       |

**返回参数 data**

信号强度值，取值范围 0~100，0 表示信号强度最弱，100 表示信号强度最强, 单位为%

**请求示例**

```javascript

import { requestWifiSignal } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const result = await requestWifiSignal(deviceId);

```

**返回示例**

```json
{
  "code": 0,
  "data": 100
}
```

## 5. 获取视频码率

**功能说明**

用于获取指定摄像头设备出流时单位时间内传输的数据量。

**请求参数**

| 参数     | 数据类型 | 说明   | 是否必填 |
| :------- | :------- | :----- | :------- |
| deviceId | `string` | 设备ID | 是       |

**返回参数 data**

视频码率，数值大于等于 0 单位为 KB/S

**请求示例**

```javascript

import { getVideoBitrateKbps } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const result = await getVideoBitrateKbps(deviceId);

```

**返回示例**

```json
{
  "code": 0,
  "data": 100
}
```

## 6. 画中画

### 是否支持

**功能说明**

首先需判定设备是否支持此功能。

**请求参数**

| 参数     | 数据类型 | 说明   | 是否必填 |
| :------- | :------- | :----- | :------- |
| deviceId | `string` | 设备ID | 是       |

**返回参数 data**

isSupport: true（**支持**） 或 false（**不支持**）

**请求示例**

```javascript

import { isSupportFloatWindow } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const result = await isSupportFloatWindow(deviceId);

```

**返回示例**

```json
{
  "code": 0,
  "data": { "isSupport": true}
}
```

### 开启功能

**功能说明**

支持画中画的前提下，才可成功调用此功能，开启画中画。

**请求参数**

| 参数     | 数据类型 | 说明   | 是否必填 |
| :------- | :------- | :----- | :------- |
| deviceId | `string` | 设备ID | 是       |

**返回参数 code**

code: 0 (**成功**) 直接启用画中画 其它（**失败**）

**请求示例**

```javascript

import { openFloatWindow } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const result = await openFloatWindow(deviceId);

```

**返回示例**

```json
{
  "code": 0
}
```

## 7. 低功耗唤醒

**功能说明**

适配使用 dpId(**149**) dpCode(**wireless_awake**)的低功耗设备，需要建立连接前，间隔200ms调用至少三次唤醒。

**请求参数**

| 参数     | 数据类型 | 说明   | 是否必填 |
| :------- | :------- | :----- | :------- |
| deviceId | `string` | 设备ID | 是       |

**返回参数 code**

code: 0 (**成功**) 方法调用成功 其它（**失败**）

**请求示例**

```javascript

import { wakeUpDevice } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';

const result = await wakeUpDevice(deviceId);

```

**返回示例**

```json
{
  "code": 0
}
```

## 8. 获取手机当前横竖屏状态

**功能说明**

单次获取手机横竖屏的状态值

**返回参数 data**

portrait (**竖屏**) landscape (**横屏**)

**请求示例**

```javascript

import { getMobileOrientation } from '@ray-js/ray-ipc-utils';

const result = await getMobileOrientation();

```

**返回示例**

```json
{
  "code": 0,
  "data": "portrait"
}
```

## 9. 设置屏幕旋转

**功能说明**

手动设置屏幕进行横竖屏切换, 使用播放器若有横屏视频，需将项目当前页面配置 (**index.config.ts**) 中的 **pageOrientation** 设置为 **auto**, 方可正常旋转。

**请求参数**

| 参数            | 数据类型                  | 说明 | 是否必填 |
| :-------------- | :------------------------ | :--- | :------- |
| pageOrientation | `portrait` 或 `landscape` |      | 是       |

**返回参数 data**

portrait (**竖屏**) landscape (**横屏**)

**请求示例**

```javascript

import { setScreenOrientation } from '@ray-js/ray-ipc-utils';

const pageOrientation = 'portrait';

const result = await setScreenOrientation(pageOrientation);

```

**返回示例**

```json
{
  "code": 0,
}
```

## 10. 获取增值服务url链接

**功能说明**

获取各大类通用增值服务链接，也可直接跳转至对应增值服务页面

**请求参数**

| 参数        | 数据类型      | 说明         | 是否必填 |
| :---------- | :------------ | :----------- | :------- |
| deviceId    | `string`      | 设备ID       | 是       |
| serviceType | `ServiceType` | 设备ID       | 是       |
| params      | `Params`      | 设备ID       | 是       |
| action      | `bool`        | 是否直接跳转 | 否       |

**服务类型: ServiceType**

| 类型                   | 说明     |
| :--------------------- | :------- |
| security_cloud_service | 云存储   |
| ai_service             | 智能云存 |
| aiInspectionReport     | 巡检报告 |
| traffic_service        | 4G 流量  |

> **注意** 增值服务持续扩充中，若有未涉及服务或因不同的增值服务所需参数也不相同, 遇到问题的，可联系涂鸦小程序团队反馈，我们会尽快给予回复。

**返回参数 data**

**请求示例**

```javascript

import { getServiceUrl } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';
const serviceType = 'security_cloud_service';
const params = {}

// 若 serviceType 为 aiInspectionReport, 则需传入 activeTime，reportId, devId

// const params = {
//   activeTime: 'xxx',
//   reportId: 'xxx',
//   devId: 'xxx'
// };

const action = true;

const result = await getServiceUrl(deviceId, serviceType, params, true);

```

**返回示例**

```json
{
  "code": 0,
}
```

## 11. 跳转IPC设置页小程序

**功能说明**

跳转到 IPC 设备的设置页面小程序，用户可以在该页面进行相关设备设置。

**请求参数**

| 参数             | 数据类型                | 说明                        | 是否必填 |
| :--------------- | :---------------------- | :-------------------------- | :------- |
| deviceId         | `string`                | 设备ID                      | 是       |
| options          | `object`                | 可选配置项                  | 否       |
| options.position | `'right'` 或 `'bottom'` | 弹出位置（默认值为'right'） | 否       |

**请求示例**

```javascript

import { goToIpcSettingMini } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';
const options = {
  position: 'right '
};

const result = await goToIpcSettingMini(deviceId, options);

```

**返回示例**

```json
{
  "code": 0,
}
```

## 12. 跳转IPC服务大厅小程序

**功能说明**

跳转到 IPC 服务大厅小程序。

**请求参数**

| 参数             | 数据类型                | 说明                        | 是否必填 |
| :--------------- | :---------------------- | :-------------------------- | :------- |
| options          | `object`                | 可选配置项                  | 否       |
| options.position | `'right'` 或 `'bottom'` | 弹出位置（默认值为'right'） | 否       |

**请求示例**

```javascript

import { goToIpcServiceHallMini } from '@ray-js/ray-ipc-utils';

const options = {
  position: 'right'
};

const result = await goToIpcServiceHallMini(options);

```

**返回示例**

```json
{
  "code": 0,
}
```

## 13. 获取增值服务是否开通

**功能说明**

用于获取指定设备的增值服务是否已开通。

**请求参数**

| 参数         | 数据类型 | 说明         | 是否必填 |
| :----------- | :------- | :----------- | :------- |
| deviceId     | `string` | 设备ID       | 是       |
| categoryCode | `string` | 增值服务类型 | 是       |

**增值服务类型 (categoryCode)**

| categoryCode           | 说明         |
| :--------------------- | :----------- |
| security_cloud_service | 云存储       |
| ai_inspection_service  | 视频巡检服务 |

> **注意** 增值服务持续扩充中，若有未涉及服务或因不同的增值服务所需参数也不相同, 遇到问题的，可联系涂鸦智能小程序团队反馈，我们会尽快给予回复。

**返回参数 data**

- true: 已开通
- false: 未开通

**请求示例**

```javascript

import { getServiceIsOpen } from '@ray-js/ray-ipc-utils';

const deviceId = '1234567890xxxxxx';
const categoryCode = 'security_cloud_service'; // 云存储

const result = await getServiceIsOpen(deviceId, categoryCode);

```

**返回示例**

```json
{
  "code": 0,
  "data": true
}
```
