Tutorial: Ein AppFenster öffnen

In den letzten Tagen erreicht mich immer wieder von Anfängern die Frage, wie man ein AppFenster geöffnet bekommt. Dazu habe ich heute für euch ein paar kleine Scriptbeispiele gepostet, die euch helfen sollen die ganze Thematik zu verstehen.

Was ist ein AppContent?

Als AppContent bezeichnet man den Inhalt, den eine User App darstellen soll. Oft ist auch von HTML UI sprich dem HTML UserInterface die Rede. Es gibt grundlegend zwei verschiedene Arten von AppContent. Den overlayContent und den popupContent. Wie die Namen schon verraten, ist der overlayContent oben rechts in der hannelecke dargestellt und ist nicht frei positionierbar und der popupContent landet in einem neu generierten Popup, welches sich beliebig auf eurem Bildschirm positionieren lässt

Wann macht es Sinn einen AppContent zu öffnen?

Es gibt verschiedene Zeitpunkte, an denen es sinnvoll sein kann den AppContent zu öffnen. Das ist aber davon abhängig, was eure App machen soll. Wenn es wichtig ist, dass eure App bereits nach dem Eintritt in den Channel sichtbar ist, sollte man den AppContent bei onUserJoined() laden.

Wenn die User App erst geöffnet werden soll, wenn ein Knuddel eingezahlt wurde, dann wäre onKnuddelReceived() eine Methode, die ihr ins Auge nehmen solltet.

Neben den zwei gängigen Methoden, gibt es dann noch Möglichkeiten die ebenfalls häufig in der Praxis verwendet werden. Zum einen wäre da erwähnenswert den AppContent mit Hilfe eines chatCommands zu öffnen. Sprich, der User gibt einen Befehl ein und anschließend öffnet sich die User App. Die Alternative wird immer dann genutzt, wenn z.B. eine User App schon bei onUserJoined()geöffnet sein muss, die App aber während des Besuchs neu gestartet wird. Hierfür kommt die Methode onAppStart() ins Spiel.

Wie sieht das Konstrukt für das öffnen eines AppContents aus?

In meinem Beispiel gehe ich von einem sehr simplen Konstrukt aus. Dies soll euch helfen, den notwendigen Aufbaue der Methode zu verstehen. Um einen AppContent zu öffnen, sind lediglich 5 Zeilen Code notwendig, die ich für euch Schritt-für-Schritt erkläre.

Zuerst, müssen wir dem Script mitteilen, welche HTML-Datei wir geöffnet haben möchten. Optional können wir auch mit übergeben, welche Daten verarbeitet werden sollen. Diese Daten müssen als Objekt übergeben werden, sind aber optional und nicht zwangsläufig erforderlich.

var htmlFile = new HTMLFile('home.html', {});

Als nächstes definieren wir, welche Art von AppContent wir geöffnet haben möchten. Das erste Beispiel zeigt, wie ein Overlay geöffnet wird. Im zweiten Beispielcode definieren wir ein Popup. Als Parameter erwartet die Methode neben dem eben erstellten htmlFile auch Werte über die Breite und Höhe des zu öffnenden AppContent. Hierbei gilt es zu beachten, dass die Größe nicht 1000 Pixel überschreiten darf.

Overlay-Beispiel:

appView = AppContent.overlayContent(htmlFile, 430, 530);

Popup-Beispiel:

appView = AppContent.popupContent(htmlFile, 430, 430);

Nachdem wir diese zwei Schritte hinter und gebracht haben, geht es darum den AppContent auch anzuzeigen. Hierfür kommt die Funktion canSendAppContent() ins Spiel. Diese Funktion prüft, ob wir dem User überhaupt einen AppContent zur Verfügung stellen können. Sprich, ob dieser User überhaupt die Bedingungen erfüllt, damit ein AppContent angezeigt werden kann. Ein möglicher Grund, warum ein AppContent nicht geöffnet werden kann wäre z.B. eine veraltete Android-Version, die diese Methoden noch nicht unterstützt. Wenn diese Prüfung true zurück gibt, kann das Senden des AppContent beginnen.

if(user.canSendAppContent(appView)===true){

Mit der Methode sendAppContent() wird schlußendlich der AppContent gesendet. Das bedeutet, dass der übergebene User im Anschluß den AppContent geöffnet bzw. angezeigt bekommt.

user.sendAppContent(appView);

Zum Schluß noch alle geschweiften Klammern schließen – und Fertig ist die Laube.

}

Im Gesamten sieht euer Scriptcode nun wie folgt aus

var htmlFile = new HTMLFile('home.html', {});
appView= AppContent.overlayContent(htmlFile, 430, 430);
if(user.canSendAppContent(appView)===true){
user.sendAppContent(appView);
}

Im nächsten Blogbeitrag dieser Serie kümmern wir uns dann um die Logische Einbindung der oben genannten Anwendungsmöglichkeiten (onUserJoined, onAppStart sowie per chatCommand). Anregungen und Wünsche zum Blogbeitrag sind wie immer in den Kommentaren erwünscht.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s