Una vez usted ha finalizado su aplicación es necesario publicarla para que este disponible para el usuario final (sin importar que se utilice como una página Web desde el navegador o sea descargada y utilizada en un dispositivo como un teléfono con Firefox OS), suministrando información de soporte como instrucciones de uso y otros recursos. Este articulo muestra brevemente las diferentes opciones disponibles para usted.
Publicando en el Marketplace de Firefox
El Marketplace de Firefox es nuestra tienda para distribuir aplicaciones tanto gratuitas como de pago. Enviar una aplicación al Marketplace de Firefox es un proceso simple, la carga a la tienda implica la subida de la aplicación conjuntamente con su información complementaria, luego espere mientras su aplicación pasa a través del proceso de revisión para segurar su calidad y que no contenga código malicioso. El envió al Marketplace de Firefox también confiere una serie de ventajas como el incremento de publicidad, tampoco es necesario implementar APIs especiales en su sitio Web, y la posibilidad de publicar aplicaciones de pago. Usted puede enviar tanto aplicaciones empaquetadas como aplicaciones hosteadas al Marketplace de Firefox.
Aplicaciones hosteadas
Una aplicación hosteada es básicamente una página almacenada en un servidor Web que puede utilizarse como una aplicación (el termino hosteada viene del ingles hosting). Si usted quiere permitir a las personas instalar su aplicación directamente desde su Web, usted debe implementar algo de código JavaScript en su sitio Web para administrar la instalación y/o actualización de la aplicación en el navegador de los usuarios, asegúrese también que el código de su aplicación incluya un archivo de manifiesto válido. Por favor vea nuestros archivos de manifiesto y nuestras APIs de instalación para ver los pasos para implementar estas funciones.
El lugar que usted escoja para almacenar su aplicación queda enteramente a su conveniencia, pero las dos opciones que mostraremos a continuación son las mas comunes y convenientes.
GitHub
Si tu aplicación Web es puramente estática (HTML/CSS/JavaScript, pero sin procesamiento del lado del servidor), GitHub Pages es una opción bastante confiable. si usted usa una extensión .webapp
esta plataforma entregara su manifiesto con correspondiente tipo de MIME.
Soluciones genéricas de hosting
Para sitios Web dinámicos use la opción de hosting genérico (como un servidor Web de su propiedad o uno al que tenga acceso) con las capacidades necesarias o un proveedor de hosting específicamente adaptado a las necesidades de su aplicación, como por ejemplo Heroku o Google App Engine.
Nota: Las aplicaciones Web instalables tienen una política de seguridad llamada "una aplicación por origen" ; básicamente usted no puede almacenar mas de una aplicación por origen. Esto hace el proceso de pruebas un poco mas difícil, pero siempre podrá crear un sub-dominio para cada aplicación y utilizar el simulador de Firefox OS o Firefox Aurora (que permites instalar aplicaciones Web el en escritorio) para probarlas. Vea las FAQs acerca del manifiesto de aplicaciones para mas información sobre los orígenes.
Aplicaciones empaquetadas
Una aplicación empaquetada es una Web que tiene todos sus recursos (HTML, CSS, JavaScript, manifiesto, etc.) contenidos en un archivo zip en lugar de tener esos recursos alojados en un servidor Web. Una aplicación empaquetada es simplemente un archivo zip con el manifiesto de la aplicación en su directorio raíz. El manifiesto debe llamarse manifest.webapp
.
Una diferencia con las aplicaciones hosteadas es que usted debe especificar un launch_path
en el manifiesto, y en las aplicaciones hosteadas esto es un campo opcional. Para mayor información vea nuestro articulo sobre Aplicaciones empaquetadas.
Aplicaciones auto-publicadas
Usted además puede elegir la opción de auto-publicar. Para aplicaciones hosteadas, esto solo involucra colocarla en un hosting como se indica a continuación.
Usted puede auto-publicar una aplicación empaquetada solo colocándola en un servidor conjuntamente con un mini manifiesto en el mismo directorio donde se encuentra y que será usado al instalar la aplicación. Veamos este proceso:
- Tener el zip de la aplicación empaquetada con el nombre
package.zip
. Este archivo contiene todos los recursos de la aplicación así como también su manifiesto. - Cree un archivo llamado
package.manifest
con el siguiente contenido. Este es un mini manifiesto usado para la instalación de aplicaciones empaquetadas. No es el manifiesto principal, el cual se encuentra dentro del archivo zip.
{ "name": "My sample app", "package_path" : "https://my-server.com/my-app-directory/my-app.zip", "version": "1", "developer": { "name": "Chris Mills", "url": "https://my-server.com" } }
- Cree un archivo llamado
index.html
con el siguiente contenido. Este contiene un ejemplo del JavaScript que llama a la aplicación empaquetada (installPackage()
) y devuelve la llamada en caso de éxito y notificación de errores.<html> <body> <p>Packaged app installation page</p> <script> // This URL must be a full url. var manifestUrl = 'https://my-server.com/my-app-directory/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>
- Copie
package.zip
,package.manifest
, yindex.html
en la raíz del directorio de su aplicación (my-app-directory
en este ejemplo). - Utilizando un dispositivo compatible (como un teléfono con Firefox OS), navegue hasta la localización en su servidor donde usted coloco los archivos de ejemplo y confirme cuando se le pregunte para completar la instalación. El script le dará una indicación en caso de completarse exitosamente o de una falla.
Nota: Usted no puede instalar aplicaciones privilegiadas o certificadas desde paquetes auto-publicados ya que ellas necesitan ser firmadas durante el proceso de publicación del Marketplace de Firefox.
Nota: Usted incluso puede crear su propia tienda de aplicaciones, ya que dispone de una serie de opciones para hacerlo.