--- title: Aplicaciones empaquetadas slug: Mozilla/Marketplace/Publishing/Packaged_apps translation_of: Archive/Mozilla/Marketplace/Options/Packaged_apps ---
Una aplicación empaquetada es una Open Web App que tiene todos sus recursos (HTML, CSS, JavaScript, manifiesto y demás) empaquetados en un archivo zip, en lugar de tenerlos en un servidor web. Una aplicación empaquetada es simplemente un archivo zip con el manifiesto de la aplicacion en su directorio raíz. El manifiesto debe ser llamado manifest.webapp
.
Una direferencia de una aplicación alojada es que una aplicación empaquetada, es que debe especificar una ruta de arranque en el manifiesto en tanto que se trata de un campo opcional en una aplicación alojada.
Nota: Actualmente (Enero 2013) Firefox Marketplace solamente soporta aplicaciones empaquetadas para Firefox OS.
El propósito de una aplicación empaquetada, es tener una forma viable de proveer aplicaciones que tengan acceso a APIs sensibles en el dispositivo. Las aplicaciones deben ser verificadas por la tienda donde es distribuida (como Firefox Markerplace). La tienda revisa la aplicación y si la encuentra aceptable, firma el archivo zip de la aplicación con su llave privada. Esto da a los usuarios de la aplicación más seguridad de que han sido revisados problemas potenciales de seguridad, privacidad y capacidad.
Aplicaciones privilegiadas
type
a su archivo manifest.webapp
y establezca el valor de privileged
."default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'"
type
a su archivo manifest.webapp
y establecer su valor a certified
."default-src *; script-src 'self'; object-src 'none'; style-src 'self'"Esto hace parecer que las reglas en las CSP son ligeramente más flexibles para las aplicaciones con privilegios que en las aplicaciones certificadas. Si quiere saber las razones de esto, vea las Políticas CSP por defecto y Bug 768029.
type
en su archivo manifest.webapp
por que el valor por defecto para type
(web
) es correcto.Las aplicaciones empaquetadas tienen las mismas capacidades que las aplicaciones web de código abierto normales (aplicaciones "alojadas"), pero las aplicaciones empaquetadas tienen algunas diferencias:
app://<uuid>
. Ejemplo: Cuando usted carga el contenido de /index.html
en una aplicacion empaquetada, en realidad esta cargando algo como lo siguiente: (el UUID sera diferente):
app://550e8400-e29b-41d4-a716-446655440000/index.html
El UUID es generado al azar en el momento de la instalacion, lo cual significa que es único en cada dispositivo en la que es instalada la aplicación. El protocolo app://
será útil en futuras versiones en tiempo de ejecución, pagos y flujos de OAuth.
manifest.webapp
.mozApps
diferente: installPackage()
.iframes
, pero dicho contenido no tendrá acceso a APIs privilegiadas ni las CSP por defecto le serán aplicadas.Las aplicaciones empaquetadas también pueden hacer cosas como acceder a bases de datos en un servidor web como una aplicación hospedada.
Hay Web APIs que pueden ser usadas maliciosamente por lo que el acceso a estas debe ser controlado. Para cada API sensible a la que se quiera acceder, ustede debe agregar una entrada al campo permissions
en el manifiesto de la aplicación.
Algunas APIs sensibles pueden ser accedidas por aplicaciones hospedadas normales, pero otras APIs requieren que usted use una aplicación empaquetada (con privilegios o certificada). Vea Permisos de aplicaciones para una tabla que describe los requisitos..
La tienda de Firefox (Firefox Marketplace) maneja a las aplicaciones empaquetadas de forma diferente que las aplicaciones hospedadas. Cuando usted manda una aplicación empaquetada, su archivo zip es almacenado en los servidores de la Tienda y genera un nuevo manifiesto llamado el "mini-manifiesto" que está basado en el manifiesto de la aplicación que se encuentra en el archivo zip. Cuando un usuario installa su aplicación, el mini-manifiesto es pasado a la función installPackage()
en la aplicación instalada. El mini-manifiesto existe para propósitos de instalación y actualización y no es usado cuando la aplicación se ejecuta.
Para instalar una aplicación empaquetada en un dispositivo Firefox OS usando el simulador, vea la sección "Push to Device" en la guía del Simulador.
Si quieres probar localmente la instalación de tu aplicación empaquetada, aquí hay otra forma de hacerlo. Usa los siguietnes pasos para instalar una aplicación empaquetada en un teléfono usando un servidor Web que está en tu red local. Puede ser un servidor local que se ejecute en la computadora en la que estás desarrollandol. Esto también de dará una idea de cómo funciona la instalación de aplicaciones empaquetadas.
<server-ip>
en los siguientes ejemplos. Si el servidor no utiliza un puerto estándar, use este también. Ejemplo de una dirección IP sin un puerto estándar:
10.10.12.1:8080
package.zip
. Este archivo tiene todos los recursos, incluyendo el archivo del manifiesto.package.manifest
y agregue el siguiente contenido. Este es un mini-manifiesto usado por aplicaciones empaquetadas dentro del archivo zip. Vea Campos del mini-manifiesto si quiere más información acerca de los mini-manifiestos.
{ "name": "My App", "package_path": "http://<server-ip>/package.zip", "version": "1.0" }
install.html
con el siguiente contenido . Este contiene el código JavaScript que llama a la aplicación empaquetada (installPackage()
) y a las funciones callbacks para las notificaciones de éxito o falla.
<html> <body> <p>Packaged app installation page</p> <script> // This URL must be a full url. var manifestUrl = 'http://<server-ip>/package.manifest'; var req = navigator.mozApps.installPackage(manifestUrl); req.onsuccess = function() { alert(this.result.origin); }; req.onerror = function() { alert(this.error.name); }; </script> </body> </html>
package.zip
, package.manifest
, e install.html
dentro de la carpeta raíz del documento en el servidor.http://<server-ip>/install.html
y confirme la entrada para instalar la aplicación. El script le dará una la indicación de que la instalación fue exitosa o falló.Nota: Si usted quiere probar aplicaciones certificadas (descritas anteriormente) encienda el "modo de desarrolador" ("developer mode") en el dispositivo que quiera instalar la aplicación (con Firefox OS) y asegúrese de especificar el type
correcto en su archivo manifest.webapp
.
Aqui hay un ejemplo de los campos del mini-manifiesto (mini-manifest):
{ "name": "My app", "package_path": "http://thisdomaindoesnotexist.org/myapp.zip", "version": "1.0", "size": 172496, "release_notes": "First release", "developer": { "name": "Developer Name", "url": "http://thisdomaindoesnotexist.org/" }, "locales": { "fr_FR": { "name": "Mon application" }, "se_SE": { "name": "Min balla app" } }, "icons": { "16": "/icons/16.png", "32": "/icons/32.png", "256": "/icons/256.png" } }
Cuando el Firefox Marketplace genera un mini-manifiesto para tu aplicacion, extrae informacion desde tu manifiesto de la aplicacion para algunos campos. Usted puede encontrar documentación para estos campos en el manifiesto de la aplicación. Los campos únicos del mini-manifiesto son package_path
, release_notes
, y size
. Los campos name
, version
, developer
, y locales
en su manifiesto de la aplicación deben ser exactamente los mismos que en su mini-manifiesto.
Aquí hay información sobre el mini-manifiesto que se relaciona con su uso a nivel local para sus propias pruebas::
name
package_path
version
size
release_notes
developer
name
y url
.locales
icons
Para información sobre actualizar aplicaciones, vea Actualizando aplicaciones.