Logo Oracle Deutschland   Application Express Community
Oracle APEX für mobile Endgeräte - Teil II
von Peter Raganitsch, click-click IT Solutions e.U., Wien (http://www.click-click.at)

Erscheinungsmonat APEX-Version Datenbankversion
Juni 2011 ab 4.0 ab 10.2

In der ersten Folge haben wir uns um das grundsätzliche Layout einer mobilen Applikation gekümmert. Mit dieser Ausgabe wollen wir uns um ein paar Feinheiten von mobilen Applikationen kümmern, wie z.B. die Navigation oder die Darstellung unterschiedlicher on-screen Keyboards bei Eingabefeldern.

Lassen sie uns zu Beginn erst mal den Seitenaufbau unserer mobilen Applikation betrachten:

Seitenaufbau Kopfzeile Seitenaufbau Fußzeile

Kopf- und Fußzeile einer APEX-Anwendung am iPhone

Seitenaufbau Fußzeile breit

Fußzeile im Querformat

Seitenaufbau

Im linken oberen Bild sehen sie gut die Adresszeile des Browsers. Diese verschwindet automatisch aus dem Blickfeld, sobald die angezeigte Seite hoch genug ist, um den gesamten Bildschirm zu füllen. Der erste "Sichtbare Bereich" ist die Kopfzeile ihrer mobilen Applikation. In dem Page Template, das wir im ersten Artikel zu mobilen Anwendungen erstellt haben, wurde der Platzhalter #NAVIGATION_BAR# sowie der Seitentitel in die Kopfzeile gelegt. Um neben dem Logout-Button noch eine andere Schaltfläche in der Kopfzeile anzuzeigen, muss diese einfach in der Navigation Bar (Shared Components -> Navigation Bar) eingetragen werden. Diese Technik werden wir uns weiter unten für den Back-Button zu Nutze machen.

Nach der Kopfzeile folgt der normale Seitenbereich, der durch die auf der Seite definierten APEX Regionen bestimmt wird. In unserem Template liegen alle Platzhalter (außer Region Position 8) im Hauptbereich der Seite.

Am Ende der Seite folgt die Fußzeile, die durch das Page-Template mit dem Platzhalter #REGION_POSITION8# befüllt werden kann. Wie im Beispiel oben ersichtlich, kann in der Fußzeile beliebiger Inhalt platziert werden; also normaler Text, Links oder Buttons können sich den (begrenzten) Platz teilen. jQuery Mobile kümmert sich automatisch um die entsprechende Darstellung. Das einzige Manko hier ist, dass jQuery Mobile den verfügbaren Platz für die Fußzeile recht eng bemisst und viel Leerplatz links und rechts fordert. Deswegen ist in dem Beispiel oben am "Hochkant-Screenshot" der Button abgeschnitten.

Seitennavigation

Platzsparen ist bei Smartphones die oberste Devise, deswegen verzichten wir in mobilen APEX Anwendungen auf Breadcrumbs. Damit der Benutzer aber jederzeit auf die vorherige Seite zurückwechseln kann legen wir einen "Back"-Button in die Kopfzeile - das ist ein gewohntes Konzept, das jeder Smartphone-Benutzer auch aus anderen Smartphone-Anwendungen kennt.

Dazu erstellen wir einen neuen Eintrag im Navigation Bar:

Back-Button in der Navigation Bar

Abbildung 1: Navigation Bar Einträge

Der Back-Button verzweigt nicht auf eine bestimmte Seite, sondern dynamisch auf die Seite, die im Application Item G_PREV_PAGE_ID gespeichert ist. Auf Seiten, wo wir keinen Back-Button wünschen, blenden wir ihn über Conditions einfach aus. Dies sind typischerweise die Login-Seite und die Startseite. Im Bild können sie auch sehen, dass für die beiden Einträge auch ein spezieller Inhalt für das HTML-Attribut alt vergeben wurde: Dies beeinflusst die Darstellung des Buttons in der Kopfzeile.

Damit der Button in der Kopfzeile richtig dargestellt wird, müssen wir im Page-Template noch folgende Erweiterung einbauen.

<a href="#LINK#" rel="external" #ALT#>#TEXT#</a>

Page Template Navigation Bar Entry

Jetzt nur nicht vergessen das Application Item G_PREV_PAGE_ID zu definieren und auf jeder Seite mit einer Computation (Static Assignment) zu befüllen. Dabei legen Sie zu jeder einzelnen Seite fest, welches die "vorherige Seite" sein soll. Dadurch lässt sich eine beliebige Verschachtelungstiefe der Seiten erzielen. Jede Seite gibt dabei an, welches die darüberliegende (vorherige) Seite ist.

Formularfelder optimieren

Formularfelder auf mobilen Browsern unterscheiden sich nicht von Formularfeldern im Desktop-Browser, jedoch wird durch die beschränkten Eingabemöglichkeiten ein anderes Problem aktuell: Auf Smartphones ohne eigene Tastatur wird zur Eingabe der Daten eine virtuelle Tastatur am Bildschirm eingeblendet. Die meisten dieser Browser unterstützen bereits HTML5 und können je nach Formularfeld-Typ eine andere Tastatur einblenden, damit die Eingabe so leicht wie möglich funktioniert.

Email Tastatur Zahlen Tastatur

Unterschiedliche Tastatur für Email und Zahlen am iPhone

Telefon Tastatur Text (Standard) Tastatur

Tastatur für Eingabe von Telefonnummer oder normalen Texten

Damit wir in unserer Oracle APEX Anwendung HTML5-taugliche Formularfelder anzeigen können müssen wir auf die Hilfe eines Plugins zurückgreifen, da HTML5 in APEX derzeit noch nicht von Haus aus unterstützt wird. Das Plugin können sie von www.apex-plugin.com kostenlos herunterladen. Nach dem Herunterladen importieren Sie es in den Shared Components und Plugins, danach können sie die Formularfelder umstellen um das Plugin zu verwenden.

Plugin Auswahl Plugin Settings

Plugin Auswahl und Einstellungen

Labels für Formularelemente

Auf den obigen Screenshots ist gut ersichtlich, dass der Platz durch die Feldbeschriftung (Labels) eingeschränkt wird. jQuery Mobile versucht in Formularen, die Feldbeschriftung selbst anzuordnen, aufgrund der von APEX vorgegebenen Struktur (Beschriftung und Feld sind in einer HTML-Tabelle festgezurrt) ist dies derzeit aber nicht möglich. Mit APEX Version 4.1 wird Abhilfe geschaffen, dort wird es möglich sein, Formulare komplett ohne HTML-Tabellen zu erstellen. Damit wird man die Feldbeschriftung selbst und dynamisch anordnen können - und auch für mobile Anwendungen werden dann wesentlich individuellere Layouts möglich sein.

Bis die Version 4.1 freigegeben wird, können sich sich aber auch über eine fixe Labelpositionierung weiterhelfen. Dazu in den Item-Eigenschaften die Anzeige der Beschriftung auf darüber (above) stellen und das Label-Template auf Kein Template (none) stellen.

Item Label Eigenschaften Beschriftung über dem Feld

Beschriftung über dem Formularfeld

Mit diesen weiteren Tipps ist es ein Einfaches, benutzerfreundliche mobile Applikationen mit Oracle APEX zu erstellen.

Zurück zur Community-Seite