Seiten

Montag, 6. Mai 2013

APEX mobil - Zugriff auf's Smartphone-GPS

Mit Apex 4.2 ist es sehr einfach, Webseiten für mobile devices zu erstellen.
Sogar der Zugriff auf einige Smartphone-Funktionen ist über den Browser möglich.
Ich habe beispielhaft den Zugriff auf den Standort implementiert:
  • Auf einer Webseite soll die Position des Smartphones dargestellt werden.
  • Über den Klick eines Buttons wird der Browser die API ansprechen und Höhe und Breite abrufen.
  • Höhe und Breite werden zusätzlich angezeigt, damit man auch Änderungen registrieren kann.
Zunächst habe ich mir auf http://apex.oracle.com einen kostenlosen Workspace angelegt und anschließend schnell mal eine Anwendung mit dem Mobile-Template zusammengeklickt. Wie man das macht, ist in diesem Tipp der deutschsprachigen APEX und PL/SQL Community beschrieben.
Hier im Schnelldurchlauf:
  • Den Wizard für eine neue Applikation aufrufen und eine Datenbankapplikation auswählen.
  • Name, Schema, Optionen, Template auswählen
Die obligatorischen Angaben machen und weiter
  • Im Wizard bis zum Schluss immer nur auf "Weiter" klicken und Anwendung erstellen. Ob man - wie ich hier - ohne Login arbeiten möchte ist natürlich Geschmackssache.
Das Ergebnis
  • Jetzt vergeben wir noch schnell einen Aliasnamen, damit man sich nicht die Anwendungs-ID merken muss.
Damit steht das Grundgerüst und kann mit dieser URL aufgerufen werden: http://apex.oracle.com/pls/apex/f?p=gpstest
Auf der Home-Seite wird ein Button platziert, der bei einem Klick eine Dynamic Action auslöst. Hinter dieser liegt etwas JavaScript, welches das GPS-Modul des Smartphones abfragt.
Den Button bekommt man, indem man nacheinander:
  1. eine Region erstellt und dann dort
  2. den Button erstellt
Rechtsklick auf "Regionen"
In der Region muss noch HTML eingetragen werden, welches später per JavaScript manipuliert wird:
Wer schon mal mit JavaScript Webseiten manipuliert hat, der weiß, dass die ID eines Elementes für den gezielten Zugriff auf selbiges benötigt wird.
Jetzt per Rechtsklick auf die neue Region den Wizard für die Buttonerstellung starten.
Dem neuen Button verpassen wir - ebenfalls per Rechtsklick - eine "dynamic action"
Benamsen und weiter
weiter
Mussfelder sinnvoll füllen und weiter

Den JavaScript-Code einfügen, weiter zum letzten Schritt und dann fertigstellen.

Das Javascript findet man bequem per Google mit diesen Suchbegriffen: jquery mobile geolocation und kann ihn dann modifizieren.
navigator.geolocation.getCurrentPosition (function (pos)
{
  var lat = pos.coords.latitude;
  var lng = pos.coords.longitude;
  var t = new Date();
  var Monat = new Array("01", "02", "03", "04", "05", "06",
                        "07", "08", "09", "10", "11", "12")
  var Tag = t.toGMTString();
  var Tag = t.getDate() + "." + Monat[t.getMonth()] + "." + t.getFullYear()        + " "  + t.getHours() + ":" + t.getMinutes() + ":" +
          + t.getSeconds();
  var Tag = t.toLocaleString() ;
  var ts = t.getTime();
  $("#time").text (Tag);
  $("#ts").text (ts);
  $("#lat").text (lat);
  $("#lng").text (lng);
});

Hier kann man sich das unspektakuläre Ergebnis mit dem Iphone/Androiden/Blackberry/WindowsPhone ansehen: http://apex.oracle.com/pls/apex/f?p=gpstest
Eine Fehlerbehandlung habe ich mir gespart. Deshalb wird auch nichts passieren, sofern man gerade keinen freien Himmel hat.
Dieses Beispiel ließe sich jetzt bequem erweitern:
  • wegschreiben des Standpunktes in die DB (GPS-Tracking)
  • Darstellung des Standortes auf einem Kartendienst
  • ...

Fazit:

Mit APEX ist eine mobile Webseite extrem schnell "zusammengeklickt". Natürlich muss man für komplexe Anwendungen unter APEX mehr Aufwand investieren, dafür muss man sich nicht mit lästigen Arbeiten rund um Login, Datenbankzugriff, Browserkompatibilitäten... herumschlagen.
Schneller als mit APEX kommt man wohl nicht zu einer mobile-app-ähnlichen Webseite für Smartphones - erst recht nicht, wenn man sich darauf beschränkt, Datenbankinhalte auf dem Smartphone "nur" darzustellen.
Auch wenn man mehr machen möchte, kommt man sehr schnell zu einem guten Ergebnis.

Derzeit ist geolocation aber die einzige interessantere herstellerübergreifende Gerätefunktion, auf die der Smartphone-Browser zugreifen kann. Richtig interessant wird es erst, wenn der Browser Zugriff auf z.B. die Kamera bekommt. Dann ließen sich tolle Anwendungen in APEX erstellen, die bisher den nativen Apps vorbehalten sind.
Auf http://mobilehtml5.org/ werden die Fähigkeiten der gängigen Smartphone-OS aufgelistet. Bisher können nur Blackberry (Z10), sowie Android & Symbian (Opera Mobile) mit der Unterstützung von getUserMedia aufwarten - also dem Zugriff auf die Kamera.

Keine Kommentare:

Kommentar veröffentlichen