Dieser Artikel beschreibt die Details, wie Apps in Firefox OS gestartet und verwaltet werden. Diese Informationen sind hilfreich sowohl für Firefox OS-Plattformentwickler als auch für Gruppen, die das Betriebssystem auf neue Hardware portieren. Als App-Entwickler benötigt man diesen Artikel nicht unbedingt, aber er könnte trotzdem interessant sein.
Der App-Startprozess
Wenn der Nutzer eine App, die er starten möchte, auswählt oder eine App auf andere Weise gestartet werden soll, startet die Home-Screen-App, indem sie sich eine App-Referenz von der App
-API holt und dann die Methode App.launch()
aufruft, um die App zu starten.
Gecko empfängt diese Anforderung und sendet das mozChromeEvent
mit den App-Details zur System-App. Die System-App verarbeitet dieses Ereignis, indem sie ein neues <iframe>
-Element in den DOM-Baum einfügt und die App in dieses neue <iframe>
-Element lädt. Dieser Rahmen ist dann die Heimat der App, bis sie beendet wird.
Jede App benötigt ein Manifest, das sie beschreibt, und hat eine spezielle Dateihierarchie im Paket. Details stehen im Artikel App manifest.
Kommunikation mit Gecko
Die Kommunikation zwischen Gecko und Gaia's System-App passiert über mozChromeEvent
und mozContentEvent
. mozChromeEvent
s werden von Chrome zum Inhalt und mozContentEvent
s vom Inhalt zu Chrome gesendet. Diese Kommunikation wird benutzt, um die Erzeugung und das Schließen der vertrauten Benutzeroberfläche zu steuern und die benötigten Funktionen für Benachrichtigungen und andere Aufgaben bereitzustellen, dazu gehört auch, der System-App mitzuteilen, dass eine App gestartet werden soll.
Anmerkung: Mehr dazu, wie diese Ereignisse funktionieren, findet man in der System-App-Dokumentation. Eine andere Quelle, wie man die Ereignisse benutzt, findet man im Quellcode in b2g/chrome/content/shell.js
.