迪多米·维加·斯德克
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 | 类型 | 说明 |
|---|---|---|
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 字段 :
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;
许可证
版权所有 迪多米 版权所有.