HomeDruckansicht | Schrift grösser/kleiner | Mobile-Ansicht

Informatikdienste - ZInfo

 

UZH News

Als Onlinemagazin bestimmt ein ganz interessantes Anschauungs- Beispiel:

UZH News

Viele Endgeräte, aber kaum Hochschul-Apps

Haben die Schweizer Universitäten die App-Revolution verschlafen?

NZZ Online, 4. April 2011

Introduction to WURFL

(verfasst von Andrea Trasatti, Mitbegründer von WURFL)

Introduction to WURFLWURFL Sourceforge Page

Mobile View im UniCMS

7.04.2011

Seit Anfang Jahr bietet das UniCMS eine Darstellung fürs Mobiltelefon an. Diese wird automatisch aktiviert, wenn die Anfrage von einem solchen Gerät stammt. Das hat auch NZZ Online (4. April 2011) vermerkt: [Zitat] "Von den zwölf universitären Hochschulen hat nur die Universität Zürich (UZH) ihren Internetauftritt für mobile Endgeräte optimiert.". In diesem Artikel wird die Implementierung dieser Geräteerkennung erläutert.

Anschauungsbeispiele

Sie möchten sich das mal anschauen? Beispiele wären www.uzh.ch, oder auch gleich dieser ZInfo-Artikel. Gegenbeispiele, d.h. nicht aufs Mobiltelefon angepasste Darstellungen finden sich genügend im Internet.

Nicht mit einem Mobiltelefon ausgerüstete Leser können das kleine Icon "PDA" ganz oben rechts auf dieser Seite anklicken. Dann sehen sie diesen Artikel ebenfalls in der mobile View - wobei das auf dem Arbeitsplatz-PC natürlich eher unspektakulär aussieht. Um in die normale Browser-View zurückzukehren, klickt man den Link "Klassische Ansicht" ganz unten auf der "Mobile View"-Seite.

Geräteerkennung

Um automatisch auf eine für Mobiltelefone optimierte Ansicht umstellen zu können, muss man das anfragende Gerät erkennen und bei Bedarf eine schlanke Variante der Seite ausgeben - die Standard- Ansicht ist ja vermutlich auf Desktop- Grösse ausgelegt. Abgesehen von solchen Formatierungen gibt es auch strukturelle Unterschiede zwischen der mobile View und der Standard- Ansicht: bei ersterer ist es aus Platzgründen nicht sinnvoll, die Seiten-Navigation neben dem Inhaltsbereich anzuzeigen - wie es bei Webseiten eigentlich der Standard ist.

Die Entwicklung einer alternativen Ausgabe-Struktur und -Formatierung war also ein wesentlicher Bestandteil unserer Arbeit. Webseiten haben Sie aber bestimmt schon selbst gebaut, deshalb interessiert Sie wohl mehr, wie man den Typ des anfragenden Geräts erkennt - davon handelt also nun der zweite Teil dieses Artikels. Die Kurzantwort ist folgende: mit der Anfrage sendet der Webbrowser auch einen sogenannten User Agent Header, d.h. eine Angabe über sich selbst. Jedes Browser- und Telefon- Modell hat seinen spezifischen User Agent Header - uns interessiert aber eigentlich bloss die Frage "Ist es ein mobiles Gerät - ja oder nein?". Der erhaltene User Agent muss also noch in ja/nein übersetzt werden. Dies geschieht mit Hilfe von WURFL.

Das Open Source Projekt WURFL

WURFL ist ein Open Source Projekt, welches sich zum Ziel gemacht hat, Informationen wie Bildschirm-Dimensionen und Farbtiefe zu allen existierenden Mobiltelefonen zu sammeln und gratis zur Verfügung zu stellen. Die Beschreibung der Attribute (Capabilities), die hier verwaltet werden, gibt Ihnen eine Idee über die Art (und die Fülle) der hier erfassten Informationen. Für die Auswertung dieser Daten existieren glücklicherweise Libraries für die gängigsten Programmiersprachen.

Andrea Trasatti, einer der Mitbegründer dieser Initiative, hat eine gute Einführung in WURFL geschrieben, die auch eine Idee vermittelt, wie man eine Geräteerkennung mittels WURFL implementiert. "Leider" haben sich die erwähnten Libraries inzwischen weiterentwickelt, sodass die Code-Beispiele in Trasattis Artikel so nicht mehr funktioneren. Die fehlenden php-Klassen konnte ich jedoch im Internet auftreiben - und bekam damit die Beispiele einigermassen zum Laufen. Allerdings wird bereits mein HTC Desire nicht richtig erkannt. Die in diesem Fall zehnstufige Rekursion auf allgemeinere Gerätetypen ist zuviel, wie sich herausstellte. Kurz - ich kann Ihnen keinen einfachen Weg aufzeigen, WURFL auf Ihrer Website zu implementieren.

Offensichtlich hatte unser externer Entwicklungspartner von Becompany in dieser Hinsicht das glücklichere Händchen. Er hat die erste Implementierung der Geräteerkennung im UniCMS für die UZH News vorgenommen. Bei dieser auf den Java-Libraries von WURFL basierenden Lösung treten keine Performance- Probleme auf.

Denjenigen unter Ihnen, die sich den Aufwand für eine eigene WURFL-Integration nicht leisten können, verrate ich hier eine alternative "Geräteerkennung". Sie können in einem .htaccess-File analoge Rewrite-Rules definieren wie die nachstehenden:

RewriteEngine On
RewriteCond  %{HTTP_USER_AGENT}  iPod|iPhone|Android
RewriteRule (.*)\.mobile.html $1.mobile.html [L]
RewriteCond  %{HTTP_USER_AGENT}  iPod|iPhone|Android
RewriteRule (.*)\.html $1.mobile.html

Erläuterung: Diese Rewrite-Rules werden nur ausgeführt, wenn die unmittelbar davorstehende Bedingung erfüllt ist, d.h. wenn der User Agent Header den Teilstring "iPod", "iPhone" oder "Android" enthält. Für diese Geräte "matched" eine Anfrage beispiel.html erst mal nur bei der zweiten Regel, und wird in beispiel.mobile.html umgeschrieben. Die erneuerte Anfrage beispiel.mobile.html "matched" daraufhin bereits mit der ersten Regel, die die Anfrage in sich selbst umschreibt. Danach wird sie nicht mehr weiterbearbeitet, denn das Flag [L] ("last") verhindert die Anwendung weiterer Regeln. Das Ergebnis der Umschreibungen ist also beispiel.mobile.html. (Dieses Regelset wirkt übrigens auch auf Files in Unterverzeichnissen.) Anfragen mit der Endung .mobile.html beliefern Sie nun mit einer mobile View.

Schlussbemerkungen

Da WURFL präzise Angaben zu den einzelnen Devices wie Bildschirm- Dimensionen, Farbtiefe, unterstützte Bildformate etc. enthält, wäre es möglich, vorab zu prüfen, ob ein Gerät die benötigten Eigenschaften z.B. für eine Animation enthält. Falls nicht, sendet man dem Client anstelle der Animation bloss ein statisches Bild.

Leider kann ich Ihnen wie erwähnt zwar keine funktionierende WURFL-Installation anbieten, aber immerhin habe ich ein Abfrageinterface für WURFL-Spezifikationen gefunden, wo Sie nachprüfen können, ob WURFL Ihr Mobiltelefon erkennt. Den User Agent für Ihr Gerät verrät Ihnen mein User Agent "Detektor". Eine andere Darstellung der im WURFL-Repository enthaltenen Daten finden Sie auf mobilofant.com.


Michael Trindler