Auszug aus dem Buch Apps mit PhoneGap entwickeln

1.3 Weitere Tipps

Im Rahmen der Arbeit mit Web-Programmierung werden Sie auch weitere externe Ressourcen nutzen. Etwa Bilder oder Videos. Dazu kann es sein, dass Sie die Pfade in Ihrem Projekt ansprechen oder ändern müssen. In diesem Abschnitt sollen einige Details besprochen werden, auf die Sie achten müssen. Dabei sind diese Details einfach als unstrukturierte Praxistipps zu sehen, die Ihnen später vielleicht einmal nützlich sind.

1.3.1 Pfadangaben

Die Webseite, die Sie in einer PhoneGap-App laden, kann sowohl lokal als auch aus dem Internet geladen werden, wenn das mobile Endgerät des Anwenders dazu in der Lage ist. In dem Java-Code von Android taucht etwa die Zeile auf:

Listing 1.5 Laden der Webseite in Android

super.loadUrl(“file:///android_asset/www/index.html”);

Android stellt für Apps ein Standardverzeichnis bereit, in dem Sie Dateien bereitstellen können, die aus der App heraus geladen werden können und im App-Package verwaltet werden. Dieses Verzeichnis nennt sich assets. Auf dieses greift man mit relativen Pfaden zu. Von besonderer Bedeutung im Java-Code ist der Token android_asset, der besagtes Verzeichnis repräsentiert. Genaugenomen verweist die gesamte Angabe file:///android_asset auf dieses Verzeichnis. Der URL in dem Listing oben ist also die Angabe von dem aktuellen assets-Verzeichnis des Projekts. Darin wird das Unterverzeichnis www sowie die Datei index.html spezifiziert.

Sie können hier auch eine andere Pfadangabe notieren. Durchaus auch einen absoluten URL mit http, wenn die App Zugriff auf das Internet hat. Allerdings ist die Verwendung des assets-Verzeichnisses am zuverlässigsten, da die enthaltenen Ressourcen mit der App installiert werden. Zudem kann es Probleme mit den Zugriffsrechten der App geben, wenn Sie auf einen anderen Pfad zugreifen wollen.

CHV_BOX_ID_02

icn002

Drei Slashs

Beachten Sie die drei (!) Slashs hinter dem file-Protokoll.

Unter Windows Mobile bzw. dem Visual Studio wird das PhoneGap-Projekt mit einer XML-Datei mit Namen CordovaSourceDictionary.xml ausgeliefert, die sich im Wurzelverzeichnis des Projekts befindet. Sie sieht etwa so aus:

Listing 1.6 Die Datei CordovaSourceDictionary.xml

<?xml version=”1.0″ encoding=”utf-8″?>

<!– This file is auto-generated, do not edit! -jm –>

<CordovaSourceDictionary>

<FilePath Value=”wwwjsindex.js”/>

<FilePath Value=”wwwcordova-2.0.0.js”/>

<FilePath Value=”wwwcssindex.css”/>

<FilePath Value=”wwwimgcordova.png”/>

<FilePath Value=”wwwindex.html”/>

</CordovaSourceDictionary>

Durch Anpassen der Pfadangaben in den FilePath-Elementen können Sie im Prinzip die zu ladenden Dateien ändern, wobei auch davon eigentlich abzuraten ist. Nicht umsonst deutet der Kommentar an, dass man das besser lassen sollte, denn Randwirkungen sind nicht auszuschließen und es gibt wenige Gründe, warum man bei einer App sich nicht an die Vorgabeeinstellungen halten sollte, was ich als grundsätzliches Fazit festhalten möchte.

Für iOS ist das Anpassen der Pfade etwas aufwändiger und soll der Vollständigkeit nur angedeutet werden. Eine Möglichkeit für darüber, dass Sie Ihr Delegate der App ändern und dort eine andere Datei als index.html als Rückgabewert liefern.