# @didomi/vega-sdk 中文文档

规范地址：https://npmcn.com/package/%40didomi/vega-sdk/

版本：0\.3\.2
npm 元数据更新时间：2026-11-05T14:15:59.456Z
中文译文更新时间：2026-11-12T07:37:01.039Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40didomi/vega-sdk
原文对照：https://npmcn.com/package/%40didomi/vega-sdk/?lang=original

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

- 包体积（解压后）：94.9 kB，24 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：react \>=18\.0\.0 \<20\.0\.0，react-dom \>=18\.0\.0 \<20\.0\.0，react-native \>=0\.72\.0 \<0\.84\.0，@amazon-devices/webview ~4\.0\.2，@amazon-devices/react-native-kepler \>=4\.0\.0
- 首次发布：2025-10-01T12:48:22.072Z
- 最新版本发布：2026-11-05T14:15:59.270Z
- 近 30 天下载量：4406（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 7 个）

## 中文简介

Didomi SDK 为Vega电视平台

## 安装

```sh
npm install @didomi/vega-sdk
```

也可以使用：`pnpm add @didomi/vega-sdk`、`yarn add @didomi/vega-sdk`、`bun add @didomi/vega-sdk`

## README

# 迪多米·维加·斯德克

A Vega SDK用于将Didomi的"同意"管理平台(CMP)与亚马逊的"Vega"平台相整合. 这个SDK使应用程序能够按照隐私规定管理用户对数据收集和处理的同意.

## 特征

-   显示同意通知和偏好对话框
-   收集和管理用户同意选择
-   与 Didomi 服务器同步同意数据
-   支持各类隐私监管(GDPR,CCPA等)
-   用户互动的综合事件处理

## 安装

```bash
npm install @didomi/vega-sdk
```

## 同伴依赖关系

此 SDK 有以下对等依赖 :

-   反应 (>=18.0.0 <=18.2.0)
-   反应 DOM (>=18.0.0 <=18.2.0)
-   原生反应(^0.72.0)
-   @amazon-devices/ react-native-vega (^2. 0
-   @amazon-devices/ 网络视图

对于 WebView: 更新您的应用程序 `manifest.toml` 要包含所需服务的文档

## 使用量

### 基本融合

```tsx
import { DidomiSDK, DidomiSDKAPI } from '@didomi/vega-sdk';
import React, { useRef } from 'react';

const MyApp = () => {
  const didomiRef = useRef<DidomiSDKAPI>(null);

  return (
    <DidomiSDK
      noticeId="YOUR_NOTICE_ID"
      didomiPublicApiKey="YOUR_PUBLIC_API_KEY"
      ref={didomiRef}
      onReady={() => console.log('Didomi SDK is ready')}
      onConsentChanged={(consent) => console.log('Consent changed:', consent)}
    >
      {/* Your application content */}
      <YourApp />
    </DidomiSDK>
  );
};
```

### 程序与 SDK 交互

在集成SDK后,您可以通过 ref 程序访问其功能:

```tsx
// All SDK methods are accessible through the ref
const didomiSDK = didomiRef.current;

// Display UI elements
didomiSDK?.notice.show(); // Show consent notice
didomiSDK?.preferences.show('purposes'); // Show preferences UI

// Query SDK state
const isConsentRequired = await didomiSDK?.isConsentRequired();

// Manage user consent
const userStatus = await didomiSDK?.getCurrentUserStatus();
await didomiSDK?.setUserAgreeToAll();
await didomiSDK?.setCurrentUserStatus({
  purposes: {
    /* purpose status */
  },
  vendors: {
    /* vendor status */
  },
});
```

## API 参考

### 组件道具

这个 `DidomiSDK` 接受下列所需道具:

| Prop | 类型 | 说明 |
| --- | --- | --- |
| `noticeId` | `string` | 表示同意的通知的编号 |
| `didomiPublicApiKey` | `string` | 您的 Didomi 公共 API 密钥 |
| `sdkPath` | `string` | (可选) Didomi SDK 路径, 默认为 “ https:// sdk. privacy- center.org/ ” |

### 方法

SDK通过一个参考器来曝光方法:

承诺返回方法 `Error` 当桥或Web SDK呼叫失败时, 当30秒内没有回复,或者当WebView重新装入时,失败,就是 重新配置,或卸载。 处理这些拒绝 `try`编号 :`catch`。 。 。 .

依赖资源加载事件和出错不会取消无关的SDK呼叫. 对于 Vega 加载没有帧元数据的事件,取消需要匹配 已配置页面或识别的文档 `didomi.ready`。未知的事件 URL依赖于请求超时. WebView 错误仍然转发到 `onError`。 。 。 .

`syncUser()` 等待 Web SDK 同步完成并保存其 `statusApplied` 财务报告和审定财务报表 `syncError` 数值。 内容 `syncAcknowledged()` 回调属于 并返回Web SDK的布尔结果. 每次尝试都是独立传送的,包括错误后重试; Web SDK 处理重复的事件并通常返回 `false` 第一次确认后. 此布尔无法确认 HTTP 发送: Web SDK 同步发送事件 .

结果有: `statusApplied: false` 不保留WebView召回和他们的确认 返回时 `false`每个WebView最多保留100个应用状态的完成结果, 在达到这个限制时, 将保留时间最长的同步呼叫驱逐 。 承认 被删除的结果,或者在重新装入或重新配置后从先前的 WebView 页面中生成的结果, 以 `Error`。 。 。 .

#### 同意管理

| 方法 | 说明 | 参数 | 回返 |
| --- | --- | --- | --- |
| `notice.show()` | 显示同意通知 | 无 | `void` |
| `notice.hide()` | 隐藏可见的同意通知 | 无 | `void` |
| `notice.isVisible()` | 检查通知是否可见 | 无 | `Promise<boolean>` |
| `preferences.show(type)` | 显示首选项 UI | `type`: “ 信息 ”“ 目的 ” “ 阴道 ” | `void` |
| `preferences.hide()` | 如果打开则关闭首选项对话框 | 无 | `void` |
| `preferences.isVisible()` | 检查首选项对话框是否打开 | 无 | `Promise<boolean>` |
| `reset()` | 重新发送同意数据 | 无 | `void` |

#### 用户状态

| 方法 | 说明 | 参数 | 回返 |
| --- | --- | --- | --- |
| `getCurrentUserStatus()` | 获得详细的用户同意状态 | 无 | `Promise<CurrentUserStatus>` |
| `getUserStatus()` | 获得用户同意状态 | 无 | `Promise<any>` |
| `getPurposes()` | 获得可用用途 | 无 | `Promise<any>` |
| `getVendors()` | 获得现有供应商 | 无 | `Promise<any>` |

#### 用户配置

| 方法 | 说明 | 参数 | 回返 |
| --- | --- | --- | --- |
| `setUser(config)` | 设置用户信息 | `config`数字 : `UserConfiguration` | `Promise<void>` |
| `clearUser()` | 清除用户数据 | 无 | `Promise<void>` |
| `setUserAgreeToAll()` | 确定同意同意所有 | 无 | `Promise<void>` |
| `setUserDisagreeToAll()` | 规定同意不同意所有 | 无 | `Promise<void>` |
| `setCurrentUserStatus(params)` | 更新用户同意状态 | `params`数字 : `SetUserStatusParams` | `Promise<boolean>` |
| `syncUser()` | 同步用户对服务器的同意 | 无 | `Promise<SyncReadyEvent>` |

#### 检查

| 方法 | 说明 | 参数 | 回返 |
| --- | --- | --- | --- |
| `isConsentRequired()` | 检查是否需要同意 | 无 | `Promise<boolean>` |
| `isUserConsentStatusPartial()` | 检查用户是否部分同意 | 无 | `Promise<boolean>` |
| `shouldConsentBeCollected()` | 检查是否应当征求同意 | 无 | `Promise<boolean>` |
| `isRegulationApplied(name)` | 检查某项规定是否适用 | `name`数字 : `string` | `Promise<boolean>` |
| `getRequiredPurposeIds()` | 获取所需目的标识 | 无 | `Promise<string[]>` |
| `getRequiredVendorIds()` | 获得所需供应商身份证 | 无 | `Promise<string[]>` |

### 活动

SDK为各种事件提供回调:

#### 预备活动

| 活动 | 说明 | 回调参数 |
| --- | --- | --- |
| `onReady` | SDK准备好了就打电话了 | 无 |

#### 同意事件

| 活动 | 说明 | 回调参数 |
| --- | --- | --- |
| `onConsentChanged` | 用户同意更改时调用 | `consent`: 用户同意数据 |

#### UI 事件

| 活动 | 说明 | 回调参数 |
| --- | --- | --- |
| `onNoticeShown` | 显示通知时调用 | 无 |
| `onNoticeHidden` | 隐藏通知时调用 | 无 |
| `onPreferencesShown` | 显示首选项时调用 UI | 无 |
| `onPreferencesHidden` | 隐藏首选项 UI 时调用 | 无 |

#### 用户交互事件

| 活动 | 说明 | 回调参数 |
| --- | --- | --- |
| `onNoticeBackdropclick` | 点击通知背景时调用 | 无 |
| `onNoticeClickAgree` | 用户点击后就通知达成一致 | 无 |
| `onNoticeClickDisagree` | 用户在通知时点击异议时调用 | 无 |
| `onNoticeClickMoreInfo` | 当用户在通知时点击更多信息时调用 | 无 |
| `onPreferencesClickAgreeToAll` | 用户点击同意全部时调用 | 无 |
| `onPreferencesClickDisagreeToAll` | 用户点击时对全部有异议 | 无 |
| `onPreferencesClickSaveChoices` | 当用户保存选择时调用 | 无 |

#### 错误事件

| 活动 | 说明 | 回调参数 |
| --- | --- | --- |
| `onError` | 当下面的 Didomi Web SDK 或 WebView 发生错误时调用 | `error`数字 : `DidomiError` |

这个 `DidomiError` 有效载荷是一个受歧视的结合 `source` 字段 :

```ts
type DidomiError =
  | { source: 'api'; id?: string; reason?: string }
  | {
      source: 'webview';
      code?: number;
      description?: string;
      nativeEvent?: unknown;
    };
```

-   `source: 'api'` 由Didomi Web SDK转发 `api.error` 事件(HTTP在发送同意、事件、指标等时发生故障). `id` 识别失败的请求, `reason` 这是其中之一 `request.failure` 或者说 `response.error`。 。 。 .
-   `source: 'webview'` – 由基本的WebView为负载/运行时间出错而发布.

## 执行实例

以下是一个简单的例子,说明如何实施SDK并访问其功能:

```tsx
import { DidomiSDK, DidomiSDKAPI } from '@didomi/vega-sdk';
import React, { useRef, useState } from 'react';
import { View } from 'react-native';

function App() {
  // Create ref to access SDK methods
  const didomiRef = useRef<DidomiSDKAPI>(null);

  // Example of event handling
  const handleReady = () => {
    // SDK is ready, you can now call methods
    console.log('SDK is ready');
  };

  // Example of handling consent changes
  const handleConsentChanged = (consent) => {
    console.log('Consent changed', consent);
    // Update application state or perform actions based on consent
  };

  return (
    <DidomiSDK
      noticeId="YOUR_NOTICE_ID"
      didomiPublicApiKey="YOUR_PUBLIC_API_KEY"
      ref={didomiRef}
      onReady={handleReady}
      onConsentChanged={handleConsentChanged}
    >
      <View>{/* Your application UI */}</View>
    </DidomiSDK>
  );
}

export default App;
```

## 许可证

版权所有 迪多米 版权所有.

## 常见问题

### @didomi/vega-sdk 是什么？

Didomi SDK 为Vega电视平台

### 如何安装 @didomi/vega-sdk？

在项目目录运行 npm install @didomi/vega-sdk，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=18\.0\.0 \<20\.0\.0）、react-dom（\>=18\.0\.0 \<20\.0\.0）、react-native（\>=0\.72\.0 \<0\.84\.0）、@amazon-devices/webview（~4\.0\.2）、@amazon-devices/react-native-kepler（\>=4\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @didomi/vega-sdk 支持 TypeScript 吗？

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

### @didomi/vega-sdk 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @didomi/vega-sdk 可以商用吗？

@didomi/vega-sdk 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @didomi/vega-sdk 的下载量有多少？

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

### @didomi/vega-sdk 还在维护吗？

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

