Artikel über: Entwickler und APIs
Dieser Artikel ist auch verfügbar in:

Erweiterte Einbindung des HTML-Integrationscodes (Widget) über die API

Widget-Beispielcode



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

   <!-- Setup the widget on page load -->
   <script>
       window.addEventListener('load', function () {
           var widget = DigitaService.Widget.Create({
               autoscroll: true,
               element: 'gamification-widget',
               engine: 'https://apps.drimify.com/XBs15jKF/',
               fixed: false,
               height:['auto'],
               sharingurl: 'https://apps.drimify.com/XBs15jKF/',
               width: '100%',
           });
           widget.onReady = function (event) {};
           widget.onComplete = function (event) {};
           widget.onFirstInteraction = function () {};
           widget.onRouteChange = function (event) {};
           widget.onScrollToTop = function () {};
           widget.onClose = function () {};
           widget.onError = function (errorEvent) {};
           widget.load();
       });
   </script>
</head>
<body>
<div id="gamification-widget"></div>
</body>
</html>


Einrichtung



Erstellen Sie ein Widget, indem Sie ein Options-Objekt an die Create-Funktion übergeben:

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


Optionen für die Einrichtung



Erforderlich



OptionTypBeschreibung
options.elementZeichenkette - HTMLElementDas Widget wird in dieses HTMLElement eingefügt. Sie können einen direkten Zugriff auf ein vorhandenes HTMLElement übergeben oder die String-ID für dieses Element angeben. Wenn Sie diese Eigenschaft nicht angeben, wird versucht, eine „digitaservice-widget“-ID auf der Seite zu finden.
options.engineZeichenketteDie absolute URL zur Anwendung, die in das Widget geladen wird.


Optional



OptionTypStandardwertBeschreibung
options.heightZeichenketteautoDas Widget hat eine Standardhöhe von null, bevor es geladen ist. Sie können dies mit einem Platzhalterwert überschreiben, um ein Springen der Seite zu vermeiden, je nachdem, wo das Widget auf der übergeordneten Seite verwendet wird. Der Wert ist in Pixel wie „600px“. Wird options.fixed = true verwendet, bleibt der Höhenwert fixiert, wodurch Scrollleisten eingeführt werden.
options.autoscrollbooleschtrueAbhängig von der Inhaltslänge des Widgets und der Anzeige des Benutzers kann es erforderlich sein, dass die Seite, die das Widget enthält, gescrollt werden muss. Das Standardverhalten, wenn ein Benutzer das Widget verwendet, ist, die Hosting-Seite an den Anfang des Widgets zu scrollen, um die Benutzerfreundlichkeit zu unterstützen. Um dies zu deaktivieren, setzen Sie autoscroll auf false. Diese Eigenschaft ist false, wenn options.fixed true ist.
options.sharingurlZeichenketteDie Hosting-URL, die das Widget enthältBei der Verwendung von Social Sharing ist dies die URL, die Personen in sozialen Medien teilen, um sie zu Ihrer Kampagne zu bringen. Wenn sharing eine leere Zeichenfolge ist, wird die Hosting-Seite (die das Widget enthält) als URL verwendet.
options.fixedbooleschfalseNormalerweise passt sich die Größe des Widgets automatisch an den Inhalt der Engine an, um Scrollleisten zu vermeiden. Wenn dies auf true gesetzt ist, bleibt die Widget-Höhe konstant und ändert sich nicht. Bei Verwendung dieser Option sollte der Wert von options.height auf einen anderen Wert als „auto“ gesetzt werden. Wenn die Höhe der Engine größer ist als der Höhenwert, werden Scrollleisten zum Navigieren verwendet.
options.widthZeichenkette„100%“Die Breite des Widgets. Kann als CSS-Maßeinheit wie „%“ oder „px“ angegeben werden.


Laden



Sobald ein Widget eingerichtet ist, muss es geladen werden. Sie können das Widget jederzeit laden.

Hinweis: Stellen Sie sicher, dass Sie alle der unten aufgeführten Rückrufe eingerichtet haben, bevor Sie das Laden starten, damit Sie alle Ereignisse erfassen können.

widget.load();


Ereignis-Callback-Funktionen



onReady


Sobald widget.load() aufgerufen wurde, lädt und initialisiert dies das Widget. Wenn das Widget diesen Prozess abgeschlossen hat, wird optional der onReady Callback ausgelöst.
widget.onReady = function (event) {
   // geladen und bereit zur Nutzung
   console.log(event.type); // “ready”
   console.log(event.data); // {}
};


onError


Sobald widget.load() aufgerufen wurde, lädt und initialisiert dies das Widget. Alle schwerwiegenden Fehler, die danach auftreten, lösen optional den onError Callback aus.
widget.onError = function (event) {
   throw new Error(event.message);
};


onComplete


Sobald das spiel beendet ist und der benutzer den letzten Bildschirm betrachtet. Es liefert auch ein Datenobjekt, welches beschreibt, was im spiel passiert ist.

Hinweis: Wenn Sie darauf reagieren möchten, könnte es sinnvoll sein, innerhalb des Callbacks einen Timeout zu setzen, damit der benutzer Zeit hat, den Bildschirm Beenden zu lesen, da dies sofort eintritt, wenn der letzte Bildschirm erreicht ist. Sie können auch onClose verwenden.
widget.onComplete = function (event) {
   console.log(event.type); // “complete”
   console.log(event.data); // {}
   console.log("Das Spielergebnis des Benutzers war" + event.data.gameMetrics.score);
};


onResize


Tritt auf, wenn die Engine die Größe ändert, und stellt die Höhe als Pixelwert zur Verfügung.
widget.onResize = function (event) {
   console.log(event.type); // “resize”
   console.log(event.data); // {}
   console.log("Anwendungshöhe:" + event.data.height);
};


onClose


Die anwendung kann mit einer speziellen schließen-Schaltfläche konfiguriert werden, die es dem benutzer ermöglicht, die Experience ausdrücklich zu schließen. Wenn diese Schaltfläche konfiguriert ist und der benutzer damit interagiert, wird das schließen-Ereignis ausgelöst. Dies ist ein guter Zeitpunkt, um das Widget von Ihrer Seite zu entfernen und den Lebenszyklus des Widgets zu beenden.
widget.onClose = function () {
   DigitaService.Widget.Destroy();
};


onFirstInteraction


Wenn der benutzer zum ersten Mal mit der geladenen anwendung interagiert (Berührung/Klick).

widget.onFirstInteraction = function () {
   console.log("Der Benutzer hat zum ersten Mal mit der Anwendung interagiert");
};


onRouteChange


Tritt auf, wenn die anwendung innerhalb des Widgets die Route gewechselt hat (navigiert zwischen Bildschirmen). Das Ereignis kann je nach Kontext ein Datenobjekt enthalten oder auch nicht.

widget.onRouteChange = function (event) {
   console.log(event.type); // “routechange”
   console.log(event.data); // {} oder undefined
   console.log("Der Benutzer hat zu einem neuen Bildschirm navigiert");
};


onScrollToTop


Tritt auf, wenn die anwendung versucht, zurück bis zum oberen Rand der Seite zu scrollen. Kann auf der übergeordneten Seite genutzt werden, um sicherzustellen, dass das Scrollen nicht ausgelöst wird (CORS) oder angepasst werden muss. Das Ereignis enthält kein Datenobjekt.

widget.onScrollToTop = function () {
   console.log("Scroll zurück bis zum oberen Rand");
};


Metriken



Hier finden Sie eine Liste der wichtigsten Kennzahlen, die je nach Spieltyp verwendet werden können:

SchlüsselBeschreibung
data.gameMetrics.CurrentAttemptDie Versuche des Benutzers, nachdem er das Spiel abgeschlossen hat.
data.gameMetrics.prizeIDDie Preis-ID.
data.gameMetrics.prizeImageDas Preisbild.
data.gameMetrics.prizeNameDer Preisname.
data.gameMetrics.prizeRefDie Preisreferenz.
data.gameMetrics.totalPossibleAttemptsDie Gesamtanzahl der möglichen Versuche.
data.gameMetrics.userWontrue/false je nach Benutzerstatus.
data.gameMetrics.scoreDie Gesamtpunktzahl, mit der der Benutzer das Spiel abschließt.


Anmeldeinformationen


SchlüsselBeschreibung
data.credentials.isPreviewModePrüfen, ob das Spiel im Vorschaumodus ist.
data.credentials.projectIDDie App-ID der aktuell gespielten Anwendung.
data.credentials.projectLanguageDie Sprache des Projekts im Widget (en, fr).
data.credentials.projectNameDer Name der App.
data.credentials.projectTypeDer Typ der App (Quiz, Memory...).
data.credentials.publisherIDDie Publisher-ID.
data.credentials.sessionIDDie Sitzungs-ID des aktuellen Spielers.


Fehlerbehandlung



Es gibt zwei Hauptmethoden, um Fehler zu erkennen und Informationen über Probleme innerhalb des Widgets zu erhalten:

onError Callback



Der `onError`-Callback erfasst alle schwerwiegenden Fehler, die nach dem Laden des Widgets auftreten. Dies kann nützlich sein, um zu erkennen, wann eine Seite nicht existiert oder ein kritischer Fehler auftritt.

widget.onError = function (event) {
    if (typeof event.data.message !== 'undefined') {
        switch (event.data.message) {
            default:
                // Nichts tun
                break;
            case 'ERR_15':
                console.log("Seite existiert nicht");
                break;
        }
    }
};


onRouteChange Callback



Der `onRouteChange`-Callback wird ausgelöst, wenn die Anwendung zwischen verschiedenen Bildschirmen innerhalb des Widgets navigiert. Dies ist nützlich, um Fehler im Zusammenhang mit dem Anwendungszustand und der Verfügbarkeit von Inhalten zu verfolgen.

widget.onRouteChange = function (event) {
    if (typeof event.data.errorCode !== 'undefined') {
        switch (event.data.errorCode) {
            default:
                // Nichts tun
                break;
            case 'ERR_01':
                console.log("Kein Tarif verfügbar");
                break;
            case 'ERR_02':
                console.log("Inhalt ist noch nicht verfügbar");
                break;
            case 'ERR_03':
                console.log("Inhalt ist abgelaufen");
                break;
            case 'ERR_04':
                console.log("Keine weiteren Ansichten");
                break;
            case 'ERR_05':
                console.log("Sicherheitsfehler");
                break;
            case 'ERR_07':
                console.log("Anwendung nicht veröffentlicht");
                break;
            case 'ERR_08':
                console.log("Premium-Anwendung nicht verfügbar");
                break;
            case 'ERR_09':
                console.log("Sitzungs-ID nicht erkannt");
                break;
            case 'ERR_10':
                console.log("Sitzungs-ID bereits verwendet");
                break;
            case 'ERR_11':
                console.log("Plan nicht aktiviert");
                break;
            case 'ERR_12':
                console.log("Falsche Daten erhalten");
                break;
            case 'ERR_13':
                console.log("SSO-Anruf fehlgeschlagen");
                break;
            case 'ERR_14':
                console.log("Sprache nicht verfügbar");
                break;
        }
    }
};


Durch die Nutzung von onError und onRouteChange können Sie effektiv Probleme innerhalb des Widgets verfolgen und beheben, um ein besseres Benutzererlebnis zu gewährleisten.

Aktualisiert am: 05/03/2025

War dieser Beitrag hilfreich?

Teilen Sie Ihr Feedback mit

Stornieren

Danke!