Cordova - Entwicklung plattformneutraler Apps
von: Ralph Steyer
Springer Vieweg, 2017
ISBN: 9783658167240
Sprache: Deutsch
401 Seiten, Download: 14920 KB
Format: PDF, auch als Online-Lesen
Vorwort | 6 | ||
Inhaltsverzeichnis | 9 | ||
1 Einleitung und Grundlagen – Um was geht es bei Cordova? | 15 | ||
1.1 Was behandeln wir im einleitenden Kapitel? | 15 | ||
1.2 Erste grundlegende Überlegungen zum Umfeld | 16 | ||
1.2.1 Die mobile Welt – Tausende von Inseln | 16 | ||
1.2.2 Was erwartet Sie in dem Buch? | 17 | ||
1.3 Was sind Cordova und PhoneGap? | 19 | ||
1.3.1 Cordova oder PhoneGap oder was? | 20 | ||
1.4 Die Architektur, der Cordova-Wrapper und FFI | 20 | ||
1.5 Unterstützte Plattformen bei Cordova | 22 | ||
1.6 Was sollten Sie bereits wissen? | 24 | ||
1.7 Was sollten Sie haben? | 24 | ||
1.7.1 Betriebssysteme | 24 | ||
1.7.2 Die Entwicklungs-Software | 26 | ||
1.7.3 Die mobile Hardware und Registrierungsfragen | 31 | ||
1.7.4 Verschiedene Wege zum Testen | 37 | ||
2 Native Apps versus Web-Apps und mobilen Web-Applikationen – Das mobile Umfeld von Cordova | 40 | ||
2.1 Was behandeln wir im einleitenden Kapitel? | 40 | ||
2.2 Mobile Web-Applikationen und mobile Webseiten versus Web-Apps | 41 | ||
2.2.1 Webseiten | 41 | ||
2.2.2 Web-Applikationen – RIA | 41 | ||
2.2.3 Single-page-Webanwendung | 42 | ||
2.2.4 Besonderheiten von Web-Apps | 42 | ||
2.2.5 Native Apps | 43 | ||
2.2.6 Die Arbeitsweise nativer Apps | 44 | ||
3 Installation und erste Anwendung von Cordova – Erster Kontakt zu Cordova | 70 | ||
3.1 Was behandeln wir im Kapitel? | 70 | ||
3.2 Installation von Cordova | 71 | ||
3.2.1 Node.js und npm bereitstellen | 71 | ||
3.2.2 Die konkrete Installation von Cordova mit npm | 73 | ||
3.2.3 Test der Installation | 74 | ||
3.2.4 Erweiterte Anweisungen zur Cordova-Installation | 75 | ||
3.3 Cordova-Projekte anlegen | 75 | ||
3.3.1 Die Plattformunterstützung hinzufügen | 76 | ||
3.3.2 Kompilieren und ausführen | 77 | ||
3.3.3 Individuelle Icons | 79 | ||
3.4 Von der CLI zur IDE | 81 | ||
3.4.1 Ein Android-Cordova-Projekt im Android Studio laden und bearbeiten | 81 | ||
3.4.2 Cordova-Projekte unter Visual Studio | 85 | ||
3.4.3 Importieren eines Cordova-Projekts in Visual Studio | 87 | ||
3.5 Verschiedene Workflow, das merges-Verzeichnis und plattformspezifische Anpassungen | 89 | ||
3.6 Alles was Recht ist | 90 | ||
3.6.1 Allgemeines zu den Rechtesystemen | 90 | ||
4 Web-Technologien unter Cordova – Wie setzt man HTML, JavaScript und CSS in Cordova ein? | 95 | ||
4.1 Was behandeln wir im Kapitel? | 95 | ||
4.2 Die Indexseite | 96 | ||
4.2.1 Die Struktur der HTML-Seite | 97 | ||
4.2.2 Die Skript-Referenzen | 98 | ||
4.2.3 Style Sheets | 100 | ||
4.3 Einige Standardschablonen | 101 | ||
4.4 Die eigenen Skript-Dateien | 103 | ||
4.5 Weitere Tipps | 105 | ||
4.5.1 Pfadangaben | 105 | ||
4.6 Bilder & andere Multimediadateien | 106 | ||
4.6.1 Eine App mit Bilddarstellung über das img-Tag | 107 | ||
4.6.2 Eine App mit Video | 108 | ||
5 Wo bin ich und wo will ich hin? – Mit Cordova die Position und Richtung bestimmen | 115 | ||
5.1 Was behandeln wir im Kapitel? | 116 | ||
5.2 Das navigator-Objekt | 116 | ||
5.2.1 Eigenschaften und Methoden von navigator auswerten | 117 | ||
5.2.2 Die Bedeutung von deviceready | 119 | ||
5.3 Geolokalisierung | 123 | ||
5.3.1 Die verschiedenen Techniken zur Ortsbestimmung | 123 | ||
5.3.2 Das Objekt navigation.geolocation | 128 | ||
5.3.3 Die aktuelle Position – ein konkretes Beispiel mit getCurrentPosition() | 135 | ||
5.3.4 Die Veränderung mit watchPosition() beobachten | 142 | ||
5.3.5 Die Beobachtung beenden | 144 | ||
5.4 Ein Mashup mit Kartendiensten | 144 | ||
5.4.1 Karten von Google Maps nutzen | 145 | ||
5.4.2 Karten von Bing Maps nutzen | 153 | ||
5.5 Wie schnell bin ich? Eine Tachometer-App | 155 | ||
5.6 Ein grafischer Tacho mit HTML5-Canvas-Objekten | 158 | ||
5.6.1 Das Canvas-Element | 158 | ||
5.7 Wo geht es lang? Der Kompass | 162 | ||
5.7.1 Die möglichen Optionen | 165 | ||
5.7.2 Die Eigenschaften | 165 | ||
5.7.3 Ein vollständiges Kompassbeispiel | 166 | ||
5.7.4 Ein Kompassbeispiel unter Verwendung von HTML5-Canvas-Objekten | 168 | ||
5.8 Der Beschleunigungssensor | 171 | ||
5.8.1 Die Methoden und Eigenschaften | 172 | ||
5.9 Ein Cockpit als Abschlussbeispiel | 175 | ||
5.9.1 Portrait-Modus | 175 | ||
6 Erstellung in der Cloud – Der Build-Dienst von Adobe® | 184 | ||
6.1 Was behandeln wir in diesem Kapitel? | 184 | ||
6.2 Der Build-Dienst | 185 | ||
6.3 Übersetzung der Web-Quellcodes | 188 | ||
7 Information und Rückmeldung – Hallo, jemand da? | 190 | ||
7.1 Was behandeln wir im Kapitel? | 190 | ||
7.2 Das device-Objekt | 191 | ||
7.2.1 Die Eigenschaften | 191 | ||
7.2.2 Ein Beispiel zur Anzeige relevanter Informationen | 191 | ||
7.3 Der Netzwerkstatus | 194 | ||
7.3.1 Ein Beispiel zur Auswertung des Netzwerkstatus | 194 | ||
7.3.2 Ein Muster zur Entscheidung, ob eine Netzwerkverbindung besteht | 195 | ||
7.4 Notification | 196 | ||
7.4.1 Das Dialogfenster über alert() | 196 | ||
7.4.2 Der confirm()-Dialog | 199 | ||
7.4.3 Entgegennahme von Benutzereingaben mit prompt() | 201 | ||
7.4.4 beep() | 201 | ||
7.4.5 vibrate() | 202 | ||
7.4.6 Weiterentwicklung der Cockpit-App | 202 | ||
7.5 Der Batteriestatus | 203 | ||
7.6 Das Konsolenobjekt | 204 | ||
7.7 Die Statusbar | 204 | ||
8 Cordova im Zusammenspiel mit ergänzenden Frameworks – Die Funktionalität und die GUI bequemer erstellen | 205 | ||
8.1 Was behandeln wir im Kapitel? | 206 | ||
8.2 jQuery, jQuery UI und jQuery Mobile | 206 | ||
8.3 Das Basisframework jQuery | 207 | ||
8.3.1 Download von jQuery | 208 | ||
8.3.2 Die Einbindung von jQuery in Webseiten | 209 | ||
8.3.3 Wie jQuery grundsätzlich arbeitet | 209 | ||
8.3.4 Wichtige Methoden von jQuery | 210 | ||
8.3.5 Die Ereignisbehandlung | 212 | ||
8.3.6 Vorhandenen Code mit jQuery umsetzen – das navigator-Objekt auswerten | 215 | ||
8.4 Die GUI-Erstellung mit jQuery Mobile | 219 | ||
8.4.1 Die Plattformen | 219 | ||
8.4.2 Die speziellen Features von jQuery Mobile | 220 | ||
8.4.3 Der Download | 221 | ||
8.4.4 Die Einbindung | 221 | ||
8.4.5 Das Rollensystem und data-role | 223 | ||
8.4.6 Der grundsätzliche Aufbau einer mobilen Seite | 224 | ||
8.4.7 Eine erste App mit jQuery Mobile | 226 | ||
8.4.8 Eine weitere App mit jQuery Mobile – eine verbesserte Tachometer-App | 228 | ||
8.4.9 Schaltflächen, Toolbars, Navbars und Formularelemente | 230 | ||
8.4.10 Weiterentwicklung der Tacho-App mit jQuery Mobile | 233 | ||
8.4.11 Das Themenframework und allgemeine Gestaltung von Inhalt | 238 | ||
8.5 Der Einsatz von Bootstrap | 249 | ||
8.5.1 Responsive Design | 250 | ||
8.5.2 Bootstrap zur Umsetzung von RWD | 251 | ||
8.5.3 Herunterladen | 252 | ||
9 Multimediafragen – Mobile Unterhaltung | 254 | ||
9.1 Was behandeln wir im Kapitel? | 254 | ||
9.2 Zugriff auf die Kamera – das navigator.camera-Objekt | 255 | ||
9.2.1 Die Aufnahme mit getPicture() | 255 | ||
9.2.2 Ein Beispiel – ein Bild aufnehmen, anzeigen und speichern | 257 | ||
9.3 Aufnahmemöglichkeiten mit Capture & Co | 261 | ||
9.3.1 Die Basisobjekte | 262 | ||
9.3.2 Das ConfigurationData-Array | 263 | ||
9.3.3 Konkrete Aufnahmemethoden | 264 | ||
9.3.4 Die Optionen | 265 | ||
9.3.5 Erfolg und Misserfolg | 266 | ||
9.3.6 Konkrete Aufnahmebeispiele | 267 | ||
9.4 Audiowiedergabe und -aufnahme mit Media | 274 | ||
9.4.1 Erzeugen von Mediaobjekten | 274 | ||
9.4.2 Die Parameter | 275 | ||
9.4.3 Methoden von Mediaobjekten | 275 | ||
9.4.4 Ein Mediaplayer als Beispiel | 275 | ||
10 Kontaktversuche – Zugriff auf das Adressbuch | 282 | ||
10.1 Was behandeln wir im Kapitel? | 282 | ||
10.2 Die Kontaktdatenbank – Contacts und Contact | 283 | ||
10.2.1 Die Objekte Contacts und Contact | 284 | ||
10.2.2 Ein Kontaktbeispiel | 287 | ||
10.2.3 Eine Weiterentwicklung des Beispiels | 291 | ||
10.3 Verwalten von Daten | 294 | ||
10.3.1 Speichern, Duplizieren und Löschen | 294 | ||
10.3.2 ContactError | 295 | ||
10.4 Das Suchen von Daten | 295 | ||
10.5 Die Methode pickContact() | 296 | ||
11 Ran an den Speicher – Persistente Informationen | 297 | ||
11.1 Was behandeln wir im Kapitel? | 298 | ||
11.2 Zugriffe auf das Dateisystem – File & Co | 298 | ||
11.2.1 Vorüberlegungen | 298 | ||
11.2.2 Datenströme | 299 | ||
11.2.3 Die Basisobjekte unter Cordova | 301 | ||
11.2.4 LocalFileSystem | 302 | ||
11.2.5 Wo wird gespeichert? | 304 | ||
11.2.6 Objekte vom Typ File und FileSystem und das Plugin cordova-plugin-file | 306 | ||
11.2.7 Eine Datei erstellen | 313 | ||
11.2.8 Ein Beispiel zum Anlegen einer Datei in einer RIA | 314 | ||
11.2.9 Ein Beispiel zum Anlegen einer Datei in einer App | 316 | ||
11.2.10 Zugang zum Content mit FileReader und FileWriter | 316 | ||
11.2.11 Arbeiten mit Verzeichnissen – Repräsentation des Dateisystems über FileSystem und DirectoryReader | 328 | ||
11.2.12 Eine KML-Datei erstellen – Tracking für die Geolocation | 331 | ||
11.3 FileTransfer und FileUploadOptions | 336 | ||
11.3.1 FileUploadResult | 338 | ||
11.3.2 FileTransferError | 338 | ||
11.3.3 Ein Beispiel mit dem Upload einer Datei | 339 | ||
11.4 WebSQL und Zugriff auf eine SQLite-Datenbank | 346 | ||
11.4.1 Was ist WebSQL? | 346 | ||
11.4.2 Was ist SQLite? | 346 | ||
11.4.3 Die WebSQL- bzw. SQLite-Features in Cordova | 347 | ||
11.5 Local Data Storage | 358 | ||
11.5.1 Die Objekte localStorage und sessionStorage | 359 | ||
11.5.2 Ein Beispiel zum Speichern von Daten im Local Data Storage | 359 | ||
11.6 IndexedDB | 363 | ||
11.6.1 Allgemeine Arbeitsweise | 364 | ||
11.6.2 Ein komplettes Beispiel | 366 | ||
12 Erweiterte Cordova-Themen – Was rund um die eigentlichen Apps noch geht | 376 | ||
12.1 Was behandeln wir in dem Kapitel? | 376 | ||
12.2 Cordova-App-Templates | 377 | ||
12.2.1 Alternative Templates verwenden | 377 | ||
12.2.2 Ein Template selbst erstellen | 378 | ||
12.3 Der Splashscreen | 381 | ||
12.4 Whitelisting und die Content Security Policy | 382 | ||
12.4.1 Vertrauenswürdige Adressen in der Datei config.xml | 382 | ||
12.4.2 Content Security Policy mittels meta-Tag | 384 | ||
12.5 Hooks | 385 | ||
12.5.1 Definitionswege für Hooks | 387 | ||
12.6 Eigene Plugins entwickeln | 388 | ||
12.6.1 Die JavaScript-Schnittstelle | 389 | ||
12.6.2 Die nativen Schnittstellen | 390 | ||
12.6.3 Das Veröffentlichen von Plugins | 390 | ||
12.7 Plugins aus zusätzlichen Quellen installieren und Funktionalitäten erweitern | 390 | ||
12.7.1 Ein Beispiel – das Clipboard-Plugin | 390 | ||
Stichwortverzeichnis | 393 |