Artículos sobre: Desarrolladores y API
Este artículo también está disponible en:

Integración avanzada del código de integración HTML (widget) a través de la API

Ejemplo de código para Widget



<html>
<head>
   <!-- Incluir los paquetes -->
   <script src="https://cdn-apps.drimify.com/prod/widget/index.js" type="text/javascript"></script>

   <!-- Configurar el widget al cargar la página -->
   <script>
       window.addEventListener('load', function () {
           var widget = DigitaService.Widget.Create({
               autoscroll: true,
               element: 'widget-de-gamificacion',
               engine: 'https://apps.drimify.com/XBs15jKF/',
               fijo: false,
               altura:['auto'],
               urlCompartir: 'https://apps.drimify.com/XBs15jKF/',
               ancho: '100%',
           });
           widget.alListo = function (evento) {};
           widget.alCompletar = function (evento) {};
           widget.enPrimerInteraccion = function () {};
           widget.alCambiarRuta = function (evento) {};
           widget.alDesplazarHastaArriba = function () {};
           widget.alCerrar = function () {};
           widget.alError = function (eventoError) {};
           widget.cargar();
       });
   </script>
</head>
<body>
<div id="widget-de-gamificacion"></div>
</body>
</html>


Configuración



Crea un Widget pasando un objeto Opciones a la función Crear:

var widget = DigitaService.Widget.Create(opciones);


Opciones de Configuración



Obligatorio



OpciónTipoDescripción
opciones.elementocadena - HTMLElementEl widget se inyectará en este HTMLElement. Puede pasar acceso directo a un HTMLElement existente o proporcionar el ID de cadena para ese elemento. Si no proporciona esta propiedad, intentará encontrar un id "widget-de-digitaservice" en la página.
opciones.enginecadenaLa URL absoluta de la aplicación que se cargarán en el widget.


Opcional



OpciónTipoPredeterminadoDescripción
opciones.alturacadenaautoEl widget tiene una altura predeterminada de cero antes de haber sido cargado. Puedes sobrescribir esto con un valor de marcador de posición para evitar saltos en la página dependiendo de dónde se use el widget en la página padre. El valor está en píxeles, como “600px”. Al usar opciones.fijo = true el valor de la altura se bloqueará al valor proporcionado introduciendo barras de desplazamiento.
opciones.autodesplazamientobooleanotrueDependiendo de la longitud del contenido del widget y la visualización del usuario, puede requerir que la página que contiene el widget requiera desplazamiento de la página anfitriona. El comportamiento predeterminado cuando un usuario está utilizando el Widget, es desplazar la página anfitriona hasta la parte superior del widget para ayudar en la usabilidad. Para desactivar esto, establezca autodesplazamiento en falso. Esta propiedad será falsa si opciones.fijo es verdad.
opciones.urlCompartircadenaLa URL anfitriona que contiene el widgetAl usar Compartir en Redes Sociales, esta es la URL que las personas compartirán en Redes Sociales para llevarlos a su campaña. Si compartir es una cadena vacía, usará la página anfitriona (conteniendo el widget) como la URL.
opciones.fijobooleanofalsoNormalmente el widget cambiará de tamaño automáticamente para ajustarse al contenido del motor y evitar las barras de desplazamiento. Si esto se establece en verdadero, entonces la altura del widget será persistente y no cambiará. Al usar esta opción, el valor de opciones.altura debería establecerse en algo diferente de “auto”. Si la altura del motor es mayor que el valor de altura, se utilizarán barras de desplazamiento para navegar.
opciones.anchocadena“100%”El ancho del widget. Se puede establecer hasta una medida de CSS como “%” o “px” por ejemplo.


Cargar



Una vez configurado un Widget, debes cargarlo. Puedes cargar el widget en cualquier momento.

Nota: Asegúrate de establecer cualquiera de los callbacks a continuación antes de cargar para que puedas capturar todos los eventos.

widget.cargar();


Callbacks de Eventos



alListo


Una vez que widget.cargar() ha sido llamado, esto cargará e inicializará el widget. Cuando el widget haya completado este proceso, invocará un callback alListo opcional.

widget.alListo = function (evento) {
   // cargado y listo para usar
   console.log(evento.tipo); // “listo”
   console.log(evento.datos); // {}
};


alError


Una vez que widget.cargar() ha sido llamado, esto cargará e inicializará el widget. Cualquier error fatal que ocurra después de ese punto invocará un callback alError opcional.

widget.alError = function (evento) {
   throw new Error(evento.mensaje);
};


alCompletar


Una vez que el juego ha sido completado y el usuario está mirando la última pantalla. También proporciona un objeto de datos describiendo lo que ocurrió en el juego.

Nota: si quieres actuar en esto, puedes querer dar un tiempo de espera dentro del callback para que el usuario tenga tiempo de leer la Pantalla Final ya que ocurre instantáneamente al alcanzar la última pantalla. También puedes usar alCerrar.

widget.alCompletar = function (evento) {
   console.log(evento.tipo); // “completado”
   console.log(evento.datos); // {}
   console.log("La puntuación de los usarios fue" + evento.datos.metricsDelJuego.puntuacion);
};


alRedimensionar


Ocurre cuando el Motor ha cambiado de tamaño, proporciona la altura como un valor en píxeles.

widget.alRedimensionar = function (evento) {
   console.log(evento.tipo); // “redimensionar”
   console.log(evento.datos); // {}
   console.log("Altura de la Aplicación:" + evento.datos.altura);
};


alCerrar


La aplicación puede estar configurada con un botón de cierre dedicado que permite al usuario cerrar implícitamente la experiencia. Si este botón está configurado y el usuario interactúa con él, entonces se despachará el evento de cierre. Este es un buen momento para destruir el widget de tu página y terminar el ciclo de vida del widget.

widget.alCerrar = function () {
   DigitaService.Widget.Destroy();
};


enPrimerInteraccion


Cuando el usuario interactúa (toca/click) con la aplicación cargada por primera vez.

widget.enPrimerInteraccion = function () {
   console.log("El usuario interactuó con la Aplicación por primera vez");
};


alCambiarRuta


Ocurre cuando la Aplicación ha cambiado de ruta dentro del widget. (Navega entre pantallas). El evento puede o no contener un objeto de datos dependiendo del contexto.

widget.alCambiarRuta = function (evento) {
   console.log(evento.tipo) // “cambioruta”
   console.log(evento.datos) // {} o indefinido
   console.log("El usuario interactuó con la Aplicación por primera vez");
};


alDesplazarHastaArriba


Ocurre cuando la Aplicación está intentando desplazarse de vuelta hasta la parte superior de la página. Se puede utilizar en la página padre para asegurarse de que el desplazamiento no se dispara (CORS) o necesita ser ajustado. El evento no contiene un objeto de datos.

widget.alDesplazarHastaArriba = function () {
   console.log("Desplazar Hasta Arriba");
};


Métricas



Aquí hay una lista de las métricas clave que se pueden utilizar dependiendo del tipo de juego:

ClaveDescripción
datos.metricsDelJuego.IntentosActualesLos intentos del usuario una vez completado el juego.
datos.metricsDelJuego.idPremioEl ID del premio.
datos.metricsDelJuego.imagenPremioLa imagen del premio.
datos.metricsDelJuego.nombrePremioEl nombre del premio.
datos.metricsDelJuego.intentosTotalesPosiblesLa cantidad total de intentos posibles.
datos.metricsDelJuego.usuarioGanóverdadero/falso dependiendo del estado del usuario.
datos.metricsDelJuego.puntuacionLa cantidad total de puntos agregados con los que este usuario completa el juego.


Credenciales


ClaveDescripción
datos.credentials.modoPrevisualizaciónVerifica si el juego está en modo de vista previa.
datos.credentials.idProyectoLa id de la app del juego actual.
datos.credentials.idiomaProyectoEl idioma del proyecto en el widget (en, fr).
datos.credentials.nombreProyectoEl nombre de la app.
datos.credentials.tipoProyectoEl tipo de app (quiz, memorama...).
datos.credentials.idEditorLa id del editor.
datos.credentials.idSesiónLa id de sesión del jugador actual.

Actualizado el: 18/04/2024

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!