Angular
Servicio inyectable que carga el loader y sincroniza la identidad.
Antes de empezar
- Angular 16 o superior
Opción simple: index.html
Si no necesitás identificar usuarios, alcanza con el snippet en src/index.html.
src/index.html
<script> window.TinkaySettings = { token: "pk_live_xxx" };</script><script src="https://cdn.tinkay.app/widget.js" async></script>Servicio inyectable
tinkay.service.ts
import { Injectable } from "@angular/core";declare global { interface Window { Tinkay?: { open(): void; close(): void; identify(a: Record<string, unknown>): void }; TinkaySettings?: { token: string }; }}@Injectable({ providedIn: "root" })export class TinkayService { private loaded = false; load(token: string) { if (this.loaded) return; this.loaded = true; window.TinkaySettings = { token }; const s = document.createElement("script"); s.src = "https://cdn.tinkay.app/widget.js"; s.async = true; document.body.appendChild(s); } identify(attrs: Record<string, unknown>) { window.Tinkay?.identify(attrs); } open() { window.Tinkay?.open(); }}Verificar la instalación
Entrá a Configuración, Instalación en tu workspace, pegá la URL pública del sitio y tocá Probar instalación. Tinkay busca el script y valida que el dominio esté permitido.
- Abrí tu sitio en una pestaña nueva y confirmá que aparece el botón flotante.
- En la consola del navegador, escribí
window.Tinkayy verificá que devuelve un objeto. - Escribí un mensaje de prueba y confirmá que llega al Inbox.
Errores frecuentes
- El widget no aparece: el dominio no está en Configuración, Dominios. Agregalo y recargá.
- Aparece en desarrollo pero no en producción: agregá también el dominio de producción, incluida la variante con
www. - Content Security Policy: permití
https://cdn.tinkay.appenscript-srcyhttps://app.tinkay.appenframe-srcyconnect-src.
Cómo saber que quedó bien
- El botón aparece tras el arranque de la app
- `identify` corre al iniciar sesión
