Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 644219 of Auto-publication d'application

  • Raccourci de la révision : Mozilla/Marketplace/Options/Self_publishing
  • Titre de la révision : Publishing apps yourself
  • ID de la révision : 644219
  • Créé :
  • Créateur : ksad
  • Version actuelle ? Non
  • Commentaire

Contenu de la révision

Il y a des circomstances où il n'est pas souhaitable de rendre une application disponible sur le Firefox Marketplace. C'est le cas, lorsque l'on veut distribuer l'application uniquement au membre d'une organisation ou bien lorsque l'application est encore en phase de test privé. Cette page explique comment publier sa propre application en dehors du Marketplace.

Les Open Web Apps sont installables sous Firefox OS, Firefox pour android et Firefox pour desktop en utilisant {{ domxref("Apps.install") }} ou {{ domxref("Apps.installPackage") }}. Dans les deux cas, ces APIs envoient l'URL du manifeste décrivant l'application à installer. Ainsi afin de publier soi-même son application, les pré-requis minimaux sont:

  1. Un serveur où le manifest de l'application est accessible.
  2. Un serveur où l'application est accessible pour les applications hébergées et pour les applications empaquetées le fichier ZIP contenant l'application.
  3. Un code sur un site web appelant {{ domxref("Apps.install") }} ou {{ domxref("Apps.installPackage") }} selon la situation.

Limitations

Avant de publier vous-même votre Open Web Apps, vous devriez garder en mémoires les limitations suivantes:

  • Les applications auto-publiées ne peuvent pas avoir accés aux APIs privilégiées. Pour utiliser ces APIs, l'application doit être une application empaqueté et avoir son fichier ZIP signé en utilisant le systéme de soumission du Firefox Marketplace.
  •  L'application ne peut pas utiliser les achats intégrés du Firefox MarketPlace.
  • Vous devrez faire connaitre votre application vous-même car elle ne sera pas visible sur le Firefox marketplace.

Auto-publication d'applications empaquetées

Vous pouvez auto-publier votre application empaquetée en hébergeant son fichier ZIP ainsi qu'un mini-manifeste associé sur un serveur. Le mini-manifeste doit être dans le même dossier que le fichier ZIP car il permet d'identifier l'applicaion lors de l'installation. Une fois le mini-fest créé, il ne reste plus qu'à créer un script invoquant {{ domxref("Apps.installPackage") }} avec l'url du mini-manifeste pour installer l'application. Voyons maintenant en détails les différentes étapes:

  1. Empaquetez le contenu de votre application dans une archive ZIP et donnez lui le nom package.zip.  L'archive doit contenir toutes les ressources de l'application ainsi que que le manifeste principale.

    Attention: Le manifeste doit être à la racine de l'archive.

  2. Créez un fichier appelé manifest.webapp et ajoutez le contenu ci-dessous. Ce fichier est connu sous le nom de mini-manifeste, car il s'agit d'une version simplifiée du fichier manifeste contenu dans l'archive de l'application. Il est utilisé par {{ domxref("Apps.installPackage") }} pour entreprendre l'installation de l'application. Pour plus de détails, For more detailed information on the content, référez-vous à la documentation sur les champs du kini-manifeste ci-dessous.
    {
        "name": "Le nom de mon application",
        "package_path" : "https://mon-serveur.com/App-directory/package.zip",
        "version": "1",
        "developer": {
            "name": "A. Developeur",
            "url": "https://mon-serveur.com"
        }
    }
  3. Créez le script qui installera l'application. Pour cela, l'exemple ci-dessous utilise une simple page HTML nommée index.html ,  mais vous pouvez invoquer le script dans n'importe qu'elle méthode de votre site web. Le javaScript de cette page appelle l'API d'installation d'application empaquetée ({{ domxref("Apps.installPackage") }}) et inclut des notifications indiquant si l'installation a réussi ou non.
    <html>
      <body>
        <p>Page d'installation de l'application empaquetée</p>
        <script>
          // Cette URL doit être une URL compléte
          var manifestUrl = 'https://mon-serveur.com/App-directory/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>
  4. Copiez les fichiers package.zip, package.manifest, et index.html sur votre serveur dans le dossier choisit (App-directory dans cet exemple).
  5. Maintenant vous pouvez installer l'application sur un appareil compatible. Ouvrez le fichier index.html (dans cet exemple le chemin de ce fichier est https://mon-serveur.com/App-directory/index.html)  et vous aurez une fenêtre demandant une confirmation avant d'installer l'application. Une fois l'installation terminé, vous aurez une indication sur le résultat de l'installation.

Tip: Vous pouvez héberger localement une application empaquetée et le tester sur un appareil. Le serveur et l'appareil doivent pouvoir communiquer sur le réseau local. N'oubliez pas d'indiquer le numéro port si vous n'utilisez pas le port standard, par exemple: https://10.10.12.1:8080/package.zip.

Champs du mini-manifeste

Dans le cas d'auto-publication, il est nécessaire de créer un mini-manifeste. Si l'application est est publiée sur le Firefox Marketplace, le mini-manifeste est généré automatiquement à partir du manifeste de l'application.

Le meilleur moyen de créer le mini-manifeste est de copier le manifeste de l'application et de le modifer de maniére apropriée. Ainsi les champs name, version, developer et locales fields seront exactement les mêmes dans les deux manifestes. Il ne vous reste plus qu'à ajouter les champs package_path, release_notes et size:

package_path (requis)
Le chemin absolu (URL compléte:  https://mon-serveur.com/App-directory/manifest.webapp) vers l'archive de l'application.
release_notes (optionel)
Notes de version de l'application. Sur le Firefox Marketplace cette information est fournie lors du processus de soumission.
size (optionel)
La taille de l'archive en bytes. Cette information est utilisé par {{ domxref("Apps.installPackage") }} pour fournir une bar de progression lor de l'installation.

Voici un exemple d'un mini-manifeste:

{
  "name": "My app",
  "package_path": "https://mon-serveur.com/App-directory/package.zip",
  "version": "1.0",
  "size": 172496,
  "release_notes": "Premiére release",
  "developer": {
    "name": "Dupont Michel",
    "url": "https://mon-serveur.com/"
  },
  "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"
  }
}

Les autres champs de l'exemple proviennent du manifeste de l'application voir la page associée pour plus d'information.

Auto-publication d'application hébergée

L'auto-publication d'applications hébergé est similaire à celle des applications empaquetée. Il faut toujours créer un manifeste pour l'application voir la page associée. Le code pour installer l'application hébergé est le même que les applications hébergées. La seule différence est que le manifeste peut utiliser des URLs relatives

Voir aussi

Source de la révision

<div class="summary">
 <p><span class="seoSummary">Il y a des circomstances où il n'est pas souhaitable de rendre une application disponible sur le Firefox Marketplace. C'est le cas, lorsque l'on veut distribuer l'application uniquement au membre d'une organisation ou bien lorsque l'application est encore en phase de test privé. Cette page explique comment publier sa propre application en dehors du Marketplace.</span></p>
</div>
<p>Les Open Web Apps sont installables sous Firefox OS, Firefox pour android et Firefox pour desktop en utilisant {{ domxref("Apps.install") }} ou {{ domxref("Apps.installPackage") }}. Dans les deux cas, ces APIs envoient l'URL du manifeste décrivant l'application à installer. Ainsi afin de publier soi-même son application, les pré-requis minimaux sont:</p>
<ol>
 <li>Un serveur où le manifest de l'application est accessible.</li>
 <li>Un serveur où l'application est accessible pour les applications hébergées et pour les applications empaquetées le fichier ZIP contenant l'application.</li>
 <li>Un code sur un site web appelant {{ domxref("Apps.install") }} ou {{ domxref("Apps.installPackage") }} selon la situation.</li>
</ol>
<h2 id="Limitations">Limitations</h2>
<p>Avant de publier vous-même votre Open Web Apps, vous devriez garder en mémoires les limitations suivantes:</p>
<ul>
 <li>Les applications auto-publiées ne peuvent pas avoir accés aux <a href="/fr/Apps/Build/App_permissions">APIs privilégiées</a>. Pour utiliser ces APIs, l'application doit être une application empaqueté et avoir son fichier ZIP signé en utilisant le systéme de soumission du Firefox Marketplace.</li>
 <li>&nbsp;L'application ne peut pas utiliser les achats intégrés du Firefox MarketPlace.</li>
 <li>Vous devrez faire connaitre votre application vous-même car elle ne sera pas visible sur le Firefox marketplace.</li>
</ul>
<h2 id="Self-publishing_packaged_apps">Auto-publication d'applications empaquetées</h2>
<p>Vous pouvez auto-publier votre application empaquetée en hébergeant son fichier ZIP ainsi qu'un mini-manifeste associé sur un serveur. Le mini-manifeste doit être dans le même dossier que le fichier ZIP car il permet d'identifier l'applicaion lors de l'installation. Une fois le mini-fest créé, il ne reste plus qu'à créer un script invoquant {{ domxref("Apps.installPackage") }} avec l'url du mini-manifeste pour installer l'application. Voyons maintenant en détails les différentes étapes:</p>
<ol>
 <li>
  <p>Empaquetez le contenu de votre application dans une archive ZIP et donnez lui le nom <code>package.zip</code>.&nbsp; L'archive doit contenir toutes les ressources de l'application ainsi que que le <a href="/fr/Apps/Manifeste" title="Manifest documentation">manifeste</a> principale.</p>
  <div class="warning">
   <p>Attention: Le manifeste doit être à la racine de l'archive.</p>
  </div>
 </li>
 <li>Créez un fichier appelé <code>manifest.webapp</code> et ajoutez le contenu ci-dessous. Ce fichier est connu sous le nom de mini-manifeste, car il s'agit d'une version simplifiée du fichier manifeste contenu dans l'archive de l'application. Il est utilisé par {{ domxref("Apps.installPackage") }} pour entreprendre l'installation de l'application. Pour plus de détails, For more detailed information on the content, référez-vous à la documentation sur les <a href="#Champs du mini-manifeste">champs du kini-manifeste</a> ci-dessous.
  <pre class="brush: js">
{
    "name": "Le nom de mon application",
    "package_path" : "<a class="LinkyMobile-ext" href="https://my-server.com/my-app-directory/my-app.zip" title="Linkification: https://my-server.com/my-app-directory/my-app.zip">https://mon-serveur.com/App-directory/package.zip</a>",
    "version": "1",
    "developer": {
        "name": "A. Developeur",
        "url": "<a class="LinkyMobile-ext" href="https://my-server.com" title="Linkification: https://my-server.com">https://mon-serveur.com</a>"
    }
}</pre>
 </li>
 <li>Créez le script qui installera l'application. Pour cela, l'exemple ci-dessous utilise une simple page HTML nommée<code> index.html</code> ,&nbsp; mais vous pouvez invoquer le script dans n'importe qu'elle méthode de votre site web. Le javaScript de cette page appelle l'API d'installation d'application empaquetée ({{ domxref("Apps.installPackage") }}) et inclut des notifications indiquant si l'installation a réussi ou non.
  <pre class="brush: html">
&lt;html&gt;
&nbsp; &lt;body&gt;
&nbsp; &nbsp; &lt;p&gt;Page d'installation de l'application empaquetée&lt;/p&gt;
&nbsp; &nbsp; &lt;script&gt;
      // Cette URL doit être une URL compléte
&nbsp; &nbsp; &nbsp; var manifestUrl = '<a class="LinkyMobile-ext" href="https://my-server.com/my-app-directory/package.manifest" title="Linkification: https://my-server.com/my-app-directory/package.manifest">https://mon-serveur.com/App-directory/manifest.webapp</a>';
&nbsp; &nbsp; &nbsp; var req = navigator.mozApps.installPackage(manifestUrl);
&nbsp; &nbsp; &nbsp; req.onsuccess = function() {
&nbsp; &nbsp; &nbsp; &nbsp; alert(this.result.origin);
&nbsp; &nbsp; &nbsp; };
&nbsp; &nbsp; &nbsp; req.onerror = function() {
&nbsp; &nbsp; &nbsp; &nbsp; alert(this.error.name);
&nbsp; &nbsp; &nbsp; };
&nbsp; &nbsp; &lt;/script&gt;
&nbsp; &lt;/body&gt;
&lt;/html&gt;</pre>
 </li>
 <li>Copiez les fichiers <code>package.zip</code>, <code>package.manifest</code>, et <code>index.html sur votre serveur dans le dossier choisi</code>t (<code>App-directory</code> dans cet exemple).</li>
 <li>Maintenant vous pouvez installer l'application sur un appareil compatible. Ouvrez le fichier <code>index.html</code> (dans cet exemple le chemin de ce fichier est <code> <a class="LinkyMobile-ext" href="https://my-server.com/my-app-directory/package.manifest" title="Linkification: https://my-server.com/my-app-directory/package.manifest">https://mon-serveur.com/App-directory/index.html</a></code>)&nbsp; et vous aurez une fenêtre demandant une confirmation avant d'installer l'application. Une fois l'installation terminé, vous aurez une indication sur le résultat de l'installation.</li>
</ol>
<div class="note">
 <p>Tip: Vous pouvez héberger localement une application empaquetée et le tester sur un appareil. Le serveur et l'appareil doivent pouvoir communiquer sur le réseau local. N'oubliez pas d'indiquer le numéro port si vous n'utilisez pas le port standard, par exemple: <code><a class="LinkyMobile-ext" href="https://10.10.12.1:8080/package.zip" title="Linkification: https://10.10.12.1:8080/package.zip">https://10.10.12.1:8080/package.zip</a></code>.</p>
</div>
<h3 id="Mini-manifest_fields"><a name="Champs du mini-manifeste">Champs du mini-manifeste</a></h3>
<p>Dans le cas d'auto-publication, il est nécessaire de créer un mini-manifeste. Si l'application est est publiée sur le Firefox Marketplace, le mini-manifeste est généré automatiquement à partir du <a href="/fr/Apps/Build/Manifest">manifeste</a> de l'application.</p>
<p>Le meilleur moyen de créer le mini-manifeste est de copier le manifeste de l'application et de le modifer de maniére apropriée. Ainsi les champs<strong> <code>name</code>, <code>version</code>, <code>developer</code> et <code>locales</code> fields seront exactement les mêmes dans les deux manifestes</strong>. Il ne vous reste plus qu'à ajouter les champs <code>package_path</code>, <code>release_notes</code> et <code>size</code>:</p>
<dl>
 <dt>
  <code>package_path</code> (requis)</dt>
 <dd>
  Le chemin absolu (URL compléte:&nbsp; <code> <a class="LinkyMobile-ext" href="https://my-server.com/my-app-directory/package.manifest" title="Linkification: https://my-server.com/my-app-directory/package.manifest">https://mon-serveur.com/App-directory/manifest.webapp</a></code>) vers l'archive de l'application.</dd>
 <dt>
  <code>release_notes</code> (optionel)</dt>
 <dd>
  Notes de version de l'application. Sur le Firefox Marketplace cette information est fournie lors du processus de soumission.</dd>
</dl>
<dl>
 <dt>
  <code>size</code> (optionel)</dt>
 <dd>
  La taille de l'archive en bytes. Cette information est utilisé par {{ domxref("Apps.installPackage") }} pour fournir une bar de progression lor de l'installation.</dd>
</dl>
<p>Voici un exemple d'un mini-manifeste:</p>
<pre class="brush: js">
{
  "name": "My app",
  "package_path": "<a class="LinkyMobile-ext" href="https://my-server.com/my-app-directory/my-app.zip" title="Linkification: https://my-server.com/my-app-directory/my-app.zip">https://mon-serveur.com/App-directory/package.zip</a>",
  "version": "1.0",
  "size": 172496,
  "release_notes": "Premiére release",
  "developer": {
    "name": "Dupont Michel",
    "url": "<a class="LinkyMobile-ext" href="https://my-server.com/my-app-directory/my-app.zip" title="Linkification: https://my-server.com/my-app-directory/my-app.zip">https://mon-serveur.com/</a>"
  },
  "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"
  }
}
</pre>
<p>Les autres champs de l'exemple proviennent du manifeste de l'application voir la <a href="/fr/Apps/Build/Manifest" title="Manifest documentation">page associée</a> pour plus d'information.</p>
<h2 id="Self-publishing_Hosted_Apps">Auto-publication d'application hébergée</h2>
<p>L'auto-publication d'applications hébergé est similaire à celle des applications empaquetée. Il faut toujours créer un manifeste pour l'application voir la <a href="/fr/Apps/Build/Manifest" title="Manifest documentation">page associée</a>. Le code pour installer l'application hébergé est le même que les applications hébergées. La seule différence est que le manifeste peut utiliser des URLs relatives</p>
<h2 id="Also_see">Voir aussi</h2>
<ul>
 <li><a href="/fr/Apps/Build/JavaScript_API">Installation d'application et gestion des APIs</a></li>
 <li>{{ domxref("Apps.install") }}</li>
 <li>{{ domxref("Apps.installPackage") }}</li>
 <li><a href="/fr/Apps/Build/Manifest" title="Manifest documentation">Manifeste de l'application</a></li>
 <li><a href="/fr/Apps/Build/App_permissions">Permissions d'application</a></li>
</ul>
Revenir à cette révision