[Résolu] installer application empaquetée depuis mon serveu

Avec la sortie prochaine d'un OS Mobile basé sur Gecko (Firefox OS) et la création d'un marketplace ouvert pour Firefox utilisant HTML5/CSS3/Javascript, la création d'applications web visant des centaines de millions d'utilisateurs est désormais ouverte à tous.
regivanx
Arias
Messages : 2
Inscription : 30 juil. 2013, 19:08

[Résolu] installer application empaquetée depuis mon serveu

Message par regivanx » 30 juil. 2013, 19:37

Bonjour, et salutations pour mon premier message !

Je voudrais installer mortar-app-stub en tant d'application empaquetée depuis mon serveur afin de test.

J'ai essayé de suivre la procédure décrite par Mozilla.

(Je suis sous Linux)

$ git clone https://github.com/mozilla/mortar-app-stub myapp # téléchargement de l'application
$ zip -r package.zip myapp #compression
$ gedit package.manifest install.html & # création des fichiers indiquées par Mozilla, remplacement de « <server-ip> » par « localhost »
$ cp package.zip package.manifest install.html ~/server # copie des fichiers à la racine du serveur

Je démarre Firefox OS simulator, je me rends à l'adresse http://localhost/install.html

J'ai alors le message d'erreur « My App install failed » et le dossier :

~/.mozilla/firefox/fggbnctv.default/extensions/r2d2b2g@mozilla.org/profile/webapps/{d864eb8c-fb3f-4116-8040-9161a233a1f4}

ne contient que le fichier update.webapp.

Je précise que j'utilise Apache comme serveur sans modification particulière.

PS : j'ai envoyé ce message en anglais sur mozilla.dev.webapps, et un utilisateur m'a conseillé d'utiliser une application node.js, "webapplate" mais :

_ impossible de faire fonctionner webapplate localement (pour les tests),
_ mon hébergement mutualisé n'offre pas node.js (pour la production). Par contre, il y a PHP.
Votre Navigateur : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36

regivanx
Arias
Messages : 2
Inscription : 30 juil. 2013, 19:08

Re: Comment installer une application empaquetée depuis mon

Message par regivanx » 02 août 2013, 14:33

J'ai trouvé comment faire.

Pas besoin node.js ou de gasolin, il suffit de bien configurer son manifest.

Voici la procédure que j'ai utilisée :

$ git clone https://github.com/mozilla/mortar-app-stub myapp # télécharger l'application
$ cd myapp
$ gedit manifest.webapp # remplacer la ligne « "appcache_path": "/cache.manifest", » par « "package_path": "http://localhost/app/package.zip", », soit le futur emplacement de l'application
$ mkdir ~/server/app # création de l'emplacement de l'application, avec "server" défini comme le dossier racine d'Apache
$ zip -r ~/server/app/package.zip * # compression de l'application
$ cp manifest.webapp ~/server/app/ # copie du manifest
$ gedit ~/server/app/install.html # création de la page d'installation, voir plus bas.

Voici le contenu de mes fichiers manifest.webapp et install.html :

manifest.webapp :

Code : Tout sélectionner

{
  "version": "0.1",
  "name": "My Awesome App",
  "description": "Your new awesome Open Web App",
  "launch_path": "/index.html",
  "icons": {
    "16": "/img/icons/mortar-16.png",
    "48": "/img/icons/mortar-48.png",
    "128": "/img/icons/mortar-128.png"
  },
  "developer": {
    "name": "Your Name",
    "url": "http://yourawesomeapp.com"
  },
  "installs_allowed_from": ["*"],
  "package_path": "http://localhost/app/package.zip",
  "locales": {
    "es": {
      "description": "Su nueva e impresionante Open Web App",
      "developer": {
        "url": "http://yourawesomeapp.com"
      }
    },
    "it": {
      "description": "Il vostro nuovo fantastico Open Web App",
      "developer": {
        "url": "http://yourawesomeapp.com"
      }
    }
  },
  "default_locale": "en"
}
install.html

Code : Tout sélectionner

<html>
  <body>
    <p>Packaged app installation page</p>
    <script>
      // This URL must be a full url.
      var manifestUrl = 'http://localhost/app/manifest.webapp';
      var req = navigator.mozApps.installPackage(manifestUrl);
      req.onsuccess = function() {
        alert(this.result.origin);
      };
      req.onerror = function() {
        alert(this.error.name);
      };
    </script>
  </body>
</html>


Modération : ajout de balises

Code : Tout sélectionner

 pour une meilleure lisibilité[/color]

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité