Ir al contenido

Quickstart

Las definiciones de popup siempre vienen del backend, así que la forma más rápida de validar el SDK es inicializarlo con un publicKey válido y dejar que cargue tus popups en tiempo de ejecución. Las apps demo ya usan ese flujo.

val options = InitOptions(
debug = true, // solo logs del SDK — NO cambia el backend
environment = Environment.Development, // omite (o usa Environment.Production) para apuntar a prod
popupOptions = PopupOptions(
publicKey = "<your-public-key>"
),
autoLaunch = true,
provideLang = { "en" },
metadata = mapOf("userId" to "demo-user")
)
val sdk = DeepdotsPopups().apply {
initialize(options)
setPath("/home")
}

environment controla la URL base del backend (Environment.Productionhttps://api.deepdots.com, Environment.Developmenthttps://api-dev.deepdots.com). Por defecto es Production cuando se omite. debug controla solo los logs del SDK y es independiente del entorno.

Tras inicializar, el SDK expone una propiedad de solo lectura environment en DeepdotsPopups, para que las apps host puedan afirmar contra qué backend apuntan y mostrarlo en sus propios diagnósticos o logs.

provideLang también se usa para localizar las etiquetas por defecto de los botones internos del SDK (Send / Cancel / Start survey / Complete survey / Back). Idiomas soportados de fábrica: en, es, da, no, sv, fi, zh-CN. Se aceptan etiquetas con región como es-ES, nb-NO, zh-Hans, o variantes con guion bajo como es_419. Los idiomas no soportados caen a inglés. Las etiquetas provistas por el servidor o el host en PopupDefinition.actions siempre tienen prioridad sobre los valores por defecto.

let options = InitOptions(
debug: true, // solo logs del SDK — NO cambia el backend
environment: Environment.development, // omite (o usa .production) para apuntar a prod
popupOptions: PopupOptions(
id: nil,
publicKey: "<your-public-key>",
companyId: nil
),
provideLang: { Locale.current.language.languageCode?.identifier ?? "en" },
autoLaunch: true,
metadata: ["userId": "demo-user"]
)
let instance = DeepdotsSDK.DeepdotsPopups()
instance.initialize(options: options)
instance.setPath(path: "/home")

El SDK necesita un contexto específico de plataforma para renderizar la UI del popup.

  • Ejemplo Android: sdk.attachContext(PlatformContext(this))
  • Ejemplo iOS: instance.attachContext(context: PlatformContext(viewController: root))

Los ejemplos cambian el path actual a medida que el usuario navega:

  • /login
  • /home
  • /detail/1
  • /detail/2
  • /detail/3
  • /detail/4

Las actualizaciones de path importan porque la segmentación por path y algunos flujos de trigger dependen de ellas.

El SDK emite:

  • popup_shown
  • popup_clicked
  • survey_completed

Se exponen a través del enum Event y del helper Events.

5. Dispara o muestra popups manualmente si hace falta

Sección titulada «5. Dispara o muestra popups manualmente si hace falta»

El SDK también puede mostrar o disparar popups desde el código host:

sdk.show(
ShowOptions(
surveyId = "a9c8c170-bb1c-11f0-9d29-d5fe3dd521d0",
productId = "02b809f20e024bce47c57f123cff8735"
),
PlatformContext(activity)
)
  • Que el publicKey sea válido
  • Que la app host actualice setPath(...) al cambiar de pantalla
  • Que la app host llame a onScroll, triggerEvent u otros helpers de trigger cuando corresponda
  • Que los listeners de eventos estén cableados para que el equipo pueda confirmar el comportamiento del ciclo de vida del popup