@didomi/vega-sdk

中文文档
0.3.2发布于 2026/11/05MITTypeScriptCommonJS近 30 天下载 4406

Didomi SDK 为Vega电视平台

中文使用文档
文档目录12 节
  1. 特征
  2. 安装
  3. 同伴依赖关系
  4. 使用量
  5. 基本融合
  6. 程序与 SDK 交互
  7. API 参考
  8. 组件道具
  9. 方法
  10. 活动
  11. 执行实例
  12. 许可证

迪多米·维加·斯德克

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

特征

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

安装

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 要包含所需服务的文档

使用量

基本融合

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 程序访问其功能:

// 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类型说明
noticeIdstring表示同意的通知的编号
didomiPublicApiKeystring您的 Didomi 公共 API 密钥
sdkPathstring(可选) 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)显示首选项 UItype: “ 信息 ”“ 目的 ” “ 阴道 ”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数字 : UserConfigurationPromise<void>
clearUser()清除用户数据无Promise<void>
setUserAgreeToAll()确定同意同意所有无Promise<void>
setUserDisagreeToAll()规定同意不同意所有无Promise<void>
setCurrentUserStatus(params)更新用户同意状态params数字 : SetUserStatusParamsPromise<boolean>
syncUser()同步用户对服务器的同意无Promise<SyncReadyEvent>
方法说明参数回返
isConsentRequired()检查是否需要同意无Promise<boolean>
isUserConsentStatusPartial()检查用户是否部分同意无Promise<boolean>
shouldConsentBeCollected()检查是否应当征求同意无Promise<boolean>
isRegulationApplied(name)检查某项规定是否适用name数字 : stringPromise<boolean>
getRequiredPurposeIds()获取所需目的标识无Promise<string[]>
getRequiredVendorIds()获得所需供应商身份证无Promise<string[]>

活动

SDK为各种事件提供回调:

预备活动

活动说明回调参数
onReadySDK准备好了就打电话了无
活动说明回调参数
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 字段 :

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并访问其功能:

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 共发布 8 个版本,首次发布于 2025/10/01;过去 12 个月发布了 7 个版本。

版本发布日期距今
0.3.2latest2026/11/056 天前
0.3.12026/10/1923 天前
0.3.02026/08/152 个月前
0.2.22026/06/254 个月前
0.2.12026/05/225 个月前
0.2.02026/05/066 个月前

关于 @didomi/vega-sdk 的常见问题

@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 和提交记录判断。