Sie sind auf Seite 1von 1

Ein Dialog erscheint, der dem

Benutzer erklärt, dass der Dialog nicht


zu dieser App gehärt, und dass er sich
Der QR-Code entspricht nicht soch weiter auf die Suche nach dem
dem Schema richtigen QR-Code machen soll

Bei Bestätigung mit "OK" landet der


Beutzer wieder im QR-Scanner

Der Benutzer scannt einen QR-Code

Zuerst wird geprüft, ob der QR-Code nach folgendem Schema aufgebaut ist:
URL + story.php?id=0000000000000001
also
www.jumpdrive.de/geschichtenBaukasten/story.php?id=0000000000000001

Entspricht der Inhalt des QR-Codes nicht exakt diesem Schema, wird der QR-Code verworfen
Der QR-Code entspricht dem Schema und ein Info-Dialog erscheint.

Entspricht der QR-Code genau diesem Schema, dann wird genau der inhalt von id,
also in unserem Fall "0000000000000001" gespeichert.
Dann wird wieder die Knoten-Activity aufgerufen und ihr wird die ID des QR-Codes übergeben.
Die Knoten-Activity ruft dann das PHP-Skript in folgender Form auf:
www.jumpdrive.de/geschichtenBaukasten/story.php?geraeteID=12&geschichtenID=31
&typ=elemente_interaktion_qr_scan&qrCode=0000000000000001
(Die Key-Value-Paare gehören auch hier natürlich nicht ins GET sondern in POST)

Activity mit QR-Code-Scanner öffner sich

Benutzer betätigt die Zurück-Taste Benutzer hat die Möglichkeit die zurück-Taste zu betätigen
oder einen QR-Code zu scannen.
Die QR-Code-Scanner Activity wird gestoppt
Die Knoten-Activity geöffet.

Um den Webview wieder mit Inhalt zu füllen,


wird
URL + story.php?geraeteID=12&geschichtenID=31
www.jumpdrive.de/geschichtenBaukasten/story.php?geraeteID=12&geschichtenID=31
aufgerufen (die Key-Value-Paare natürlich wieder im POST, nicht im GET)
Die Antwort vom PHP-Skript ist der Aktuelle Knoten des Benutzers als HTML

Benutzer drückt Button um den QR-Code-Scanner zu benutzen


Knoten-Activity

App offnet eine neue Activity


Die Activity enthält die ActionBar mit QR-Code-Scanner (rechts in der ActionBar als Button),
einer "Zurück"-Option (Pfeil nach Links auf der linken Seite der ActionBar
und einen Webview

Der Peil nach links verursacht ein "Zurück zur Auswahl".


Wählt der Benutzer ihn an, wird er ggf nochmal gefragt
Hinweis:
ob er die Geschichte an dieser Stelle unterbrechen möchte. Benutzer drückt "Wiederholen"
Du solltest dir irgendwo eine
Bestätigt er, so kehr ehr zur Activity mit der GeschichtenListe zurück. Die App ruft nochmals
Variable einrichten die von überall Eine Seite kann nicht geladen werden Anstatt des Knotens sollte eine aussagekräftige Fehlermeldung
aus aufrufbar ist, und die die URL www.jumpdrive.de/geschichtenBaukasten/story.php?gerateID=12&geschichtenID=31
Die Geschichte die der Benutzer ausgewählt hat, Der Webview soll die Knoten der Geschichte darstellen. (keine Internetverbindung, etc) und ein "Wiederholen"-Button erscheienen
zu den Scripten (ohne den Namen auf. Die Antwort (eine HTML) wird wieder im Webview angezeigt.
hat er bisher noch nicht gespiel Dazu wird wie gerade im flow-Diagramm beschrieben das Skript story.php aufgerufen.
der Scripte) enthält. Kommt wieder keine Antwort, wird erneut die Fehlermeldung angezeigt
(er beginnt sie also neu) Bei einer neuen Geschichte eben mit den zusatz typ=neue_geschichte im POST.
[z.B. App öffnet eine neue Activity => Der Webview muss in der kommenden Activity nach dem Schema: Das Skript gibt den für den Benutzer passenden Knoten as HTML aus.
static String URL = www.jumpdrive.de/geschichtenBaukasten/ In dieser Activity soll der Benutzer auswählen, URL + story.php?geraeteID=12&geschichtenID=1&typ=neue_geschichte Das kann dann direkt im Webview dargestellt werden.
] welche Geschichte er (weiter-)spielen will www.jumpdrive.de/geschichtenBaukasten/story.php?gerateID=12&geschichtenID=1&typ=neue_geschichte WICHTIG:
aufgerufen werden. Natürlich werden die Key-Value-Paar Außer den QR-Codes läuft die gesamte weitere Spielmechanik nun im Webview ab.
Die Activity startet eine AsyncTask über den sie die Daten für die nicht in der URL (also im GET) sondern in POST übertragen
Liste konnte empfangen werden Der Benutzer klickt Button, die Seite ruft selbst das Skript wieder auf und das
Geschichten-Liste holt.
und Benutzer hat eine Geschichte ausgewählt Skript antwortet mit dem nächsten/entsprechenden Knoten.
App hat schon eine ID Der AsyncTask ruft folgendes PHP-Script auf:
(geschichtenID wird in der App
App wird gestartet. URL + story.php
bis zum nächsten on_destroy gespeichert) Die Geschichte die der Benutzer ausgewählt hat, Der Button zum QR-Code-Scanner.
App prüft, ob sie schon eine ID hat, und gibt dabei die geraeteID als POST-Variable mit. Benutzer drückt das "zurück" oben in der ActionBar
hat er schon mal gespielt Während der Geschichte kann der Benutzer eigentlich immer den Button zum QR-Code-Scanner drücken.
oder noch nicht ID konnte erfolgreich In GET-Form sieht das ganze so aus:
App hat noch keine ID App öffnet eine neue Activity. (er setzt sie also fort)
empfangen und www.jumpdrive.de/geschichtenBaukasten/story.php?geraeteID=12
Im Hintergrund startet ein ASyncTask. => Der Webview muss in der kommenden Activity nach dem Schema:
Dieser AScnyTask ruft folgendes Script auf: gespeichert werden
Zurück kommt eine XML-Datei die in zwei Bereiche gegliedert ist. URL + story.php/geraeteID=12&geschichtenID=31
URL + secure/newdevice.php www.jumpdrive.de/geschichtenBaukasten/story.php?geraeteID=12&geschichtenID=31
Erst kommt eine Liste mit Spielen die der Benutzer fortsetzen kann,
(Also: www.jumpdrive.de/geschichtenBaukasten/secure/newdevice.php) aufgerufen werden. Natürlich werden die Key-Value-Paare nich
dann folgt (in der selben XML) eine Liste mit Spielen die der Benutzer beginnen könnte.
in der URL (also im GET) sondernim POST übertragen
Vom Skript kommt eine Datei zurück die die GeräteID enthält.
Diese XML-Datei wird in eine Android-Liste eingelesen und dargestellt.
Diese ID muss permanet in der App gespeichert werden.
ID konnte nicht empfangen
werden. Wählt der Benutzer eine Geschichte aus, muss die App unbedingt
Kommt keine Antwort vom Skript (zum Beispiel, weil das Smartphone
speichern, welche Geschichte ausgewählt wurde (die ID der Geschichte)
keine Internetverbindung hat, muss entsprechend reagiert werden)
Diese GeschichtenID wird im nächsten Schritt benötigt,
und außerdem sobald der Benutzer einen QR-Code scannt. Liste konnte nicht empfangen werden

Die geschichtenID soll nur bis zum nächten on_destroy der App gespeichert sein.

Ein Dialog erscheint, der ein erneutes erstellen


PS:
Benutzer wählt "Wiederholen" der ID vorschlägt und alternativ das beenden der
Die XML mit den Listen existiert noch nicht. Ich hoffe ich schaff das am Samstag...
App anbietet

Benutzer wählt App beenden

Dialog mit Fehlermeldung und "Wiederholen" anbieten

App beendet Die aktuelle geschichtenID wird in der App gelöscht,


Die Activity zur Geschichten-Auswahl wird wieder geöffnet,
die Liste an Geschichten vom Server als XML geladen und angezeigt.
(Wie direkt nach einem Start, bei dem die App schon eine geraeteID hat)