Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.
Das Folgende ist eine Liste der Code-Level Referenz Dokumentation, die Du wahrscheinlich bei der Entwicklung einer Firefox OS App benötigen wirst. Weitere Hilfen kannst Du auch im Firefox Marketplace Entwickler Zentrum finden.
Anmerkung: Die unten detailiert beschriebenen Technologien sollten auf allen modernen Browsern funktionieren; Abweichungen davon sind durch Anmerkungen in der jeweiligen Beschreibung kenntlich gemacht.
Anmerkung: Für einen genaueren, detailierteren Überblick, welche neuen Möglichkeiten in welcher Firefox OS Version hinzugefügt wurden, Informiere Dich in unseren Firefox OS release notes.
Grundlagen einer Firefox OS App
Ein Firefox-OS App ist nur eine Open Web App, allerdings mit zusätzlich verfügbaren Eigenschaften, wie Installierbarkeit und dem Zugriff auf Geräte Programmierschnittstellen (API), um die Hardware und Geräteeigenschaften wie beispielsweise Kontakte oder Alarme etc. zu kontrollieren.
- App manifest
- Das App Manifest beschreibt deine App. Diese Anleitung erklärt, wie das Manifest funktioniert und erstellt werden kann.
- App Installation und Verwaltung der Programmierschnittstellen
- Die programmierbare Schnittstelle, um Apps zu instalieren und zu verwalten.
- Lass deine App offline arbeiten
- Strategien und Technologien, die Du nutzen kannst um sicherzustellen, dass Deine App funktioniert, auch wenn keine Netzwerk Verbindung vorhanden ist.
- Typen von Apps
- Dieser Artikel erklört die Typen von Apps: gehasted, privilegiert und zertifiziert. Du benötigst privilegierte oder zertifizierte Apps um auf sensible Geräte APIs zugreifen zu können. Privilegierte und zertifizierte Apps sind gepackte Apps.
- App Berechtigungen
- Zugriff zu Geräte APIs ist der Schlüssel um viele nützliche Apps zu erstellen. Hier findest Du, was möglich ist und wie Du auf diese zugreifen kannst.
Layout und Struktur
- Geräteunabhängiges Design
- Deine App sollte fähig sein, sich an unterschiedliche Bildschirme und Kapazitäten unterschiedlicher Geräte anzupassen. Dieser Führer wird Dir helfen zu lernen, wie dies bewerkstelligt werden kann.
- Medien Anfragen
- Eine der wichtigsten Technologien der geräteunabhängigen Design Apps ist die Medien Anfrage. Medien Anfragen erlauben deiner App auf die Bildschirmgröße, Auflösung, Geräteorientierung und viele andere Umgebungsvariablen zu reagieren, indem deklarartive CSS Regeln oder JavaScript Empfänger benutzt werden. Siehe auch Using media queries (Medien Anfragen nutzen) und MediaQueryList (Liste der Medien Anfragen).
- Flexible Boxen
- Mit CSS flexiblen Boxen kannst Du die Benutzerschnittstelle deiner App automatisch positionieren und die Größe der Elemente entsprechend der Größe und Orientierung des Displays festlegen lassen.
Zeichnen und Animationen
- CSS Umformen
- CSS umformen lässt Dich HTML Inhalte drehen, skalieren und zoomen, wenn vorhanden kann auch der Vorteil der Hardware Beschleunigung genutzt werden, ganz ohne sich auf JavaScript Code verlassen zu müssen.
- CSS Wechsel
- CSS transitions let you animate changes to your CSS. Once a transition effect is configured, changes to your CSS occur over a period of time instead of instantaneously. This makes it possible to easily and efficiently create a wide variety of visual effects in your apps.
- CSS animations
- CSS animations let you animate changes to your document on a more fundamental level, using keyframes to precisely configure the animation effect. This also lets you create looping animation effects rather than effects that happen just once, as is the case with transitions, all without relying on JavaScript.
- HTML canvas
- The HTML
<canvas>
element provides a 2D graphics workspace for you to draw in. This has many uses, including 2D games. - WebGL
- WebGL is a Web-friendly version of OpenGL ES that lets your app offer hardware-accelerated 3D graphics.
- SVG
- Scalable Vector Graphics (SVG) is a technology that lets you draw graphics using vectors instead of bitmapped images. This is great for scalability, presenting diagrams and charts, and for high-quality, scalable user interfaces.
Firefox OS Geräte APIs
Die folgende Tabelle gibt App-Manifest Berechtigungen für gehostete und privilegierten Apps. Für weitere Informationen siehe App-Berechtigungen.
Manifest permission | API name | Description | Minimum app type required | access property |
Default granted | Platform/version supported |
---|---|---|---|---|---|---|
alarms |
Alarm | Schedule a notification, or schedule an application to be started. | hosted | none | Allow |
FxOS 1.0.1 |
audio-capture |
GetUserMedia | Obtain MediaStream from audio input devices, e.g. microphone. This is needed to allow audio capture in Firefox OS 1.2+. |
hosted | none | Prompt for all installed App types. |
FxOS 1.2 for audio Desktop Firefox 20+ |
audio-channel-alarm |
AudioChannels | Alarm clock, calendar alarms. | privileged | none | Allow |
FxOS 1.0.1 |
audio-channel-content |
AudioChannels | Music, video. | hosted | none | Allow |
FxOS 1.0.1 |
audio-channel-normal |
AudioChannels | UI sounds, Web content, music, radio. | hosted | none | Allow |
FxOS 1.0.1 |
audio-channel-notification |
AudioChannels | New email, incoming SMS. | privileged | none | Allow |
FxOS 1.0.1 |
browser |
Browser | Enables the app to implement a browser in an iframe . |
privileged | none | Allow |
FxOS 1.0.1 |
camera |
Camera |
Take photos, shoot video, record audio, and control the camera. Note: |
privileged in Firefox OS 2.0+ internal/certified up to Firefox OS 1.4 |
none | Prompt for all installed App types. |
FxOS 1.0.1-1.4 certified FxOS 2.0+ privileged |
contacts |
Contacts | Add, read, or modify contacts from the address book on the device and read contacts from the SIM. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt for all installed App types. |
FxOS 1.1 Firefox Android 18 |
desktop-notification |
mozNotification for Gecko <22, Notification for Gecko 22+ | Display a notification on the user's desktop. Note that this has changed, so for Gecko <22 (Firefox OS <1.2) you need to use mozNotification , while for Gecko 22+ (Firefox 1.2+) you need to use Notification . |
hosted | none | Prompt for Web content. Allow for all installed App types. |
FxOS 1.0.1, Android 4.0, Desktop 4.0 for prefixed version FxOS 1.2, Android 22, Desktop 22 for non-prefixed version |
device-storage:music |
Device Storage | Add, read, or modify music files stored on the device. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS 1.0.1 |
device-storage:pictures |
Device Storage | Add, read, or modify picture files stored on the device. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS 1.0.1 |
device-storage:sdcard |
Device Storage | Add, read, or modify files stored on the device's SD card. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS 1.0.1 |
device-storage:videos |
Device Storage | Add, read, or modify video files stored on the device. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS 1.0.1 |
fmradio |
FM Radio | Control the FM radio. | hosted | none | Allow |
FxOS 1.0.1 |
geolocation |
Geolocation | Obtain the current location of the user. | hosted | none | Prompt (even for certified Apps) |
FxOS 1.0.1, Desktop Firefox 3.5, Android 4.0 |
input |
Keyboard | Allows the app to act as a virtual keyboard by listening to focus change events in other apps. | privileged | none | Allow |
FxOS 1.0.1 |
mobileid |
Mobile identity | Allows an app to obtain a verified phone number (MSISDN) after the user selects the number to be shared and gives explicit permission for the app to obtain it. | privileged/ | none | Prompt |
FxOS 2.0 |
mobilenetwork |
Mobile Network | Obtain mobile network information (MCC, MNC, etc.). | privileged | none | Allow |
FxOS 1.0.1 |
moz-firefox-accounts |
Firefox Accounts | Allows the use of Firefox Accounts when using the navigator.mozId API. | privileged | none | Prompt for all installed App types. |
FxOS 2.0 |
nfc |
NFC API | NFC enables an app to transmit data to other devices via near field communication. This permission is required for reading and writing data. | Privileged | none | Allow |
FxOS 2.2 |
nfc-share |
NFC API | This permission is just required for sharing tags via NFC. | Privileged | none | Allow |
FxOS 2.2 |
nfc-read , nfc-write |
NFC API | These permissions were used to request reading and writing privileges in Firefox OS 2.0/2.1 | Was certified/internal at this stage in development. | none | Allow |
FxOS 2.0 |
push |
Simple Push | Enable an app to wake up to receive notification. | hosted | none | Allow |
FxOS 1.1 |
storage |
Storage | Utilize storage (appcache, pinned apps, IndexedDB) without size limitations. See appcache, IndexedDB. | hosted | none | Allow |
FxOS 1.0.1, Desktop (early versions) |
systemXHR |
SystemXHR | Allows anonymous (no cookies) cross-origin XHR without the target site having CORS enabled. Similar to the TCP Socket API but restricted to XHR, not just raw sockets, so it is slightly less risky. See XMLHttpRequest. | privileged | none | Allow |
FxOS 1.0.1 |
tcp-socket |
TCP Socket | Create TCP sockets and communicate over them. | privileged | none | Allow |
FxOS 1.0.1, Desktop (early versions) |
video-capture |
GetUserMedia | Obtain MediaStream from video input devices, e.g. camera. This is needed to allow video capture in Firefox OS 1.4+. | hosted | none | Prompt for all installed App types. |
FxOS 1.4 |
Note: To declare an app as privileged, you need to put "type" : "privileged"
into your app manifest. You don't need to include the type
field in your manifest for web apps, as web
is the default value.
General Web APIs
Elements, events, network requests, storage and other standard Web APIs
- Network requests - send and receive data with XMLHttpRequest
XMLHttpRequest
is the DOM API used to send and receive information using HTTP, including for downloading files.- DOM events
- The event reference provides a complete list of all the events that can be sent and received to interact with DOM objects.
- Touch events
- This documentation covers touch events in particular, which of course you are likely to encounter when developing apps for touchscreen devices.
- Online & offline events
- Allows your app to dynamically respond to changes in network connection availability.
- History
- Travers and manipulate the historical view state of your app with various commands - helpful in rewinding or advancing the user's current view
- Audio
- Embedding and manipulation of audio content with the HTML5 Audio Tag
- Video
- Embedding and manipulation of video content with the HTML5 Video Tag
- Geolocation
- Enables your app to request the user's current location and listen for location changes.
- Screen orientation
- Listen for high-level screen orentation changes between various portrait and landscape positions.
- Device orientation
- Allows your app to detect granular device orientation changes from on-device sensors.
- IndexedDB
- A database access layer for Web apps that provides a scriptable interface for storing and retrieving large sets of data on the user's device.
- Storage
- The Storage API family provides various way to persistently store limited amounts of simple data on a user's device.
- localStorage
- sessionStorage
- Blob - An object that represents a file-like object of immutable, raw data. The data contained can be manipulated and mutated into several common formats (images, etc).
- Web workers
- Allows apps to run JavaScript code (which cannot touch the DOM or window object) in background threads to optimize performance and unblock UI rendering
Firefox Marketplace services
These documents and guides will help you learn how to publish your app and manage it on the Firefox Marketplace.
- Submission API
- The Submission API lets you validate your app, update your app, and fetch information about the apps available to be installed.
- Marketplace API
- All Marketplace-related documentation is centered here.