Angular 的一个信任
Angular 的 One Trust 加载器和包装器
怎样用?
-
安装软件包
npm i @altack/ngx-onetrust注意此库不会添加任何 OneTrust 关联的依赖, OneTrust 脚本将在运行时加载 .
-
导入
OneTrustModule.forRoot()在你身边AppModule。 。 。 .带有您的配置对象 域脚本ID 财务报告和审定财务报表 饼干组 需要设置为模块配置. CookiesGroups通常看起来如下,但其ID(C0001,C0002等)可能有所不同.
OneTrustModule.forRoot({ cookiesGroups: { StrictlyNecessaryCookies: 'C0001', PerformanceCookies: 'C0002', FunctionalCookies: 'C0003', TargetingCookies: 'C0004', SocialMediaCookies: 'C0005' }, domainScript: 'your-domain-script-id' })拜访你 https://app.cookiepro.com/cookies/分類?tab=类 以正确定义 CookiesGroups 对象.
-
现在你可以注射
OneTrustService(通常在APP_INITIALIZER)加载"OneTrust"脚本,实时更改横幅语言并收听同意更改. 让我们详细看看这三种方法.-
oneTrustService.loadOneTrust()接受带有您domainScriptID将接管模块一级定义的模块. 调用这种方法将输入 OneTrust 脚本的下载和初始化 . -
oneTrustService.translateBanner(lang)将尝试使用lang参数翻译 cookie 横幅( 例如en, (中文(简体) ),es, (中文(简体) ),pl(见a/c.5/49/70,附件). 它通过呼叫OneTrust.changeLanguage()方法来自浏览器的 OneTrust 对象。 要做到这一点,就必须在"OneTrust"管理面板(通常在模板部分)中定义翻译. 根据国家,用户是,translateBanner()将尝试通过合并语言+国家来创建一个有效的地块(例如en-US). 您也可以通过第二个参数true页:1oneTrustService.translateBanner('en', true)以强制改变语言,而不试图建立地方. -
oneTrustService.consentChanged$()返回一个Observable<Map<CookiesGroups, boolean>>。基本上,用户同意的地图。 用于运行基于用户选择的某些逻辑 。 注意,默认情况下( 饼干横幅可见, 且纯洁) 此Map将只包含StrictlyNecessaryCookies允许. -
oneTrustService.oneTrustInstance$()返回一个Observable<OneTrust>实例OneTrust对象在装入后.
-
附带说明
用于加载的常用例 OneTrust 是打电话 oneTrustService.loadOneTrust() 内部 APP_INITIALIZER。 。 。 .
{
provide: APP_INITIALIZER,
useFactory: appInitializer,
deps: [MyInitService],
multi: true
}
export function appInitializer(myInitService: MyInitService): Function {
return () => myInitService.load();
}
@Injectable({ providedIn: 'root' })
export class MyInitService {
constructor(
...
private oneTrust: OneTrustService,
...
) {}
public load(): Promise<any> {
this.oneTrust.loadOneTrust();
...
}
}
角相容性
如果你使用Angular 13 确保使用1.3.x版本