PhoneGap - Kurzeinführung
Alte vErsion
Ein Intent ist ne Art
Array oder XML Konfigdatei mit besonderer Bedeutung( sie beschreibt die
Aktivities und wie mit ihren Ergebnissen umgegangen werden muß- Abstrakte
Beschreibung der auszuführenden Operationen). setAction beschreibt, was gemacht
werden soll hier eine Auswahl. putExtra gibt den Parameter Fotoqualität an.
Außerdem erwartet das ganze ein Ergebnis, welches nachdem es (siehe weiter
unter) in der CamerPreview Klasse erzeugt und den Callback Funktionen zugewiesen
wurde hier in der onActivityResult weiter verarbeitet wird.
In der index.html wird diese Script Funktion aufgerufen
Wie Phonegap es macht… für jede
Plattform wird ein Container mit Webfunktionen geliefert…und eine gemeinsame js
Schnittstelle
Voraussetzung
0. Schritt
Eclipse installieren
Installiertes Android Plug Inn
& SDK
1. Schritt SDK herunterladen und entpacken
Platform
|
Package
|
Size
|
MD5 Checksum
|
Windows
|
23449838 bytes
|
cc2c51a24e2f876e0fa652e182ef5840
|
|
Mac OS X (intel)
|
19871714 bytes
|
6fcfeed0e1c36624c926551637eb3308
|
|
Linux (i386)
|
16208523 bytes
|
1d695d6a31310406f5d49092a1bd9850
|
2. Schritt Eclipse ADT Plug Inn
installieren (obsolete seit einiger Zeit)
Über Eclipse Update Site:
https://dl-ssl.google.com/android/eclipse/
3. Schritt in den Prefenrences von
Eclipse den Pfad zum Android SDK angeben
4. Schritt Android Virtual Device
anlegen
1.
In Eclipse, unter
Window > Android SDK and AVD
Manager.
2.
Virtual Devices im Linken Menu –
dann Click New.
3.
Namen und Plattform der AVD angeben.
4.
Click Create AVD.
Alternativ über Kommandozeile:
android create avd -n my_android1.5 -t 2
Import des Android Projekts in
Eclipse
5. Schritt Version 0.8.0 von PhoneGap laden (Apple
approved for App Store submissions)
6. Schritt entpacken
7. Über Eclipse das Android Projekt
importieren
Verknüpfung Android– Phonegap Browser
View wird erzeugt / Programm
gestartet
Zu Beginn
wird in der Klasse DroidGap die Methode onCreate() aufgerufen. Gespeicherte
Sitzungen können dabei übergeben werden.
Zunächst werden allgemeine Parameter gesetzt und danach die R.class verknüpft.
|
Anschließend
wird dem appView die erweiterte PhoneGap Klasse zugewiesen Java Script
aktiviert und konfiguriert.
|
Dem erzeugten/übergebenen View werden JS Funktionen angehängt(bzw.
ein Interface). Diese „kommunizieren“ später mit der in der index.html
eingebundenen PhoneGap.js Datei.
|
Schließlich
wird die Versucht die “Startseite“ zu laden.( bei uns die index.html)
|
//Ende Klasse DroidGap
}
Beispielhaft die Klasse CameraLauncher mit Konstruktor. Die eine
success- und fail- Methode hat. Sowie eine die Methode takePicture() welche die
eigentliche Aufnahme in der DroidGap Klasse aufruft. Die Klasse und Methoden
können aus der PhoneGap.js heraus angesprochen werden über den oben definierten
Namen "GapCam".
|
Phonegap.js Was dann die Succes- Funktion dump_pic mit
Daten füllt this.winCallback
= successCallback;
|
Auszug Phonegap.js aus z.B.: GWT ansprechbar in die Seite
integrierbar successCallback = dump_pic
|
Wieder in DroidGap. Aus der CameraLauncher Klassse aufgerufene
Methode startCamera(). Eine Aktivity ist eine Art View, zur Interaktion
(meistens) mit dem User. Hier wird die Kamera Perpektive aktiviert.
|
Beispielhaft mal die Imports. Man sieht hardware, net, View,
Activity, …
|
Zunächst wird wie oben erstmal der View erzeugt, beschrieben,
Daten stammen wieder aus der R.Class Datei
SurfaceHolder gibt die Daten indirekt zurück an JS succesCallback
|
Hier
wird der callback hinzugefügt. Parameter aus dem übergebenen Intent ausgelesen.
( enthält auch die Callback Funktion). Button und ClickListener
|
Hier wird der angehängte callback ausgelöst mCamera.takePicture
ist Androids Kameraaufruf
|
Wenn Nativ das Foto gemacht wurde…. Hier ist Camera die eigentlich
Hardware
|
Hier wird das Result(Foto) ins Intent zurückgegeben
putExtra(js_out) und setResult auf OK gesetzt. Löst die Funktion oben aus onActivityResult
|
Wenn geklickt wird … mCamera ist Hardware
mPictureCallback
=
Camera.PictureCallback()
|
Hier die Oberflächen Verarbeitung Camera öffnen, schließen,
beenden ( wie bei Datenbankverbindungen)
|
|
Mit der Funktion dump_pic
|
“Ablaufdiagram”
Kommentare
Kommentar veröffentlichen