Le manifeste d'application

  • Raccourci de la révision : Applications/Le_manifeste_d'application
  • Titre de la révision : Le manifeste d'application
  • ID de la révision : 45455
  • Créé :
  • Créateur : Goofy
  • Version actuelle ? Non
  • Commentaire 1 words added, 1 words removed

Contenu de la révision

{{ TranslationInProgress() }}


statut : traduction en cours

Le manifeste d'une application contient toutes les informations dont un navigateur a besoin pour interagir avec elle. Il fournit à la fois des éléments lisibles par un être humain (un nom, un jeu d'icônes et une description, en de multiples langues si nécessaire) et d'autres qui ne sont lisibles que par une machine et permettent au navigateur d'afficher et faire tourner les applications. Le manifeste et l'origine de l'application (protocole, nom de l'hôte et numéro de port) constituent à eux deux la description complète d'une application installée. Le manifeste est encodé dans une structure de données de fichier JSON ; l'installation d'une application consiste à donner l'URL de ce fichier au navigateur.

Pour publier vous-même une application, sur une page qui vous appartient, vous déclenchez son installation (par exemple, en appelant navigator.mozApps.install() depuis un bouton). Quand un magasin ou une instance autorisée publie une application, il déclenche son installation en fournissant au navigateur l'adresse URL du manifeste de l'application hébergéee.

Un exemple de manifeste

Vous pouvez copier le texte suivant dans un fichier texte et remplacer les valeurs par vos propres informations.

{{ syntax.javascript{code: "{\n  \"version\": \"1.0\",\n  \"name\": \"MozillaBall\",\n  \"description\": \"Exciting Open Web development action!\",\n  \"icons\": {\n    \"16\": \"/img/icon-16.png\",\n    \"48\": \"/img/icon-48.png\",\n    \"128\": \"/img/icon-128.png\"\n  },\n  \"widget\": {\n    \"path\": \"/widget.html\",\n    \"width\": 100,\n    \"height\": 200\n  },\n  \"developer\": {\n    \"name\": \"Mozilla Labs\",\n    \"url\": \"http://mozillalabs.com\"\n  },\n  \"installs_allowed_from\": [\n    \"https://appstore.mozillalabs.com\"\n  ],\n  \"locales\": {\n    \"es\": {\n      \"description\": \"¡Acción abierta emocionante del desarrollo del Web!\",\n      \"developer\": {\n        \"url\": \"http://es.mozillalabs.com/\"\n      }\n    },\n    \"fr\": {\n      \"description\": \"Une façon nouvelle et excitante de développer des applications pour le Web!\",\n      \"développeur\": {\n        \"url\": \"http://fr.mozillalabs.com/\"\n      }\n    },\n    \"it\": {\n      \"description\": \"Azione aperta emozionante di sviluppo di fotoricettore!\",\n      \"developer\": {\n        \"url\": \"http://it.mozillalabs.com/\"\n      }\n    }\n  },\n  \"default_locale\": \"en\"\n}\n"} }}

Définition des champs

Voici les champs autorisés dans le manifeste de l'application :

name
Un nom pour l'application, lisible par un être humain, d'une longueur maximum de 128 caractères).
description
Une description de l'application lisible par un être humain, d'une longueur maximum de 1024 caractères.
launch_path
(facultatif) Le répertoire de l'origine de l'application qui est chargé au lancement. À défaut, l'URL de lancement est considérée comme l'origine de l'application. Voir Gestion du répertoire.
icons
(facultatif) Une liste des tailles d'icônes avec le chemin correspondant, celui-ci pouvant être un chemin absolu ou une data URL. Chaque élément doit inclure une image carrée qui représente visuellement l'application.
developer
(facultatif) Des informations sur le développeur de l'application, utilisables pour un repo et un tableau de bord.
name
Le nom du développeur.
url
L'adresse URL d'un site qui propose davantage d'informations sur le développeur de l'application. Cette adresse est généralement fournie quand l'utilisateur clique sur le nom du développeur de l'application lorsque sont affichés les détails sur une application dans le tableau de bord (ou le navigateur).
locales
(facultatif) Un ensemble de ressources spécifiques à chaque langue qui remplace les données contenues dans le manifeste, qu'utilisent les interfaces utilisateur pour fournir des vues localisées. Chaque élément de « locale » est associé à une clé avec un tag de locale, et contient une représentation simplifiée du manifeste ; chaque champ présent dans la valeur locale remplacera le champ correspondant du manifeste. Certains champs ne peuvent pas être remplacés, en particulier default_locale, le champ locales, lui-même et installs_allowed_from ; un manifeste qui remplacerait un quelconque de ces champs serait invalide. Quand locales est représenté, default_locale doit obligatoirement être présent aussi.
default_locale
(nécessaire dès que locales est présent) Le tag de locale pour la traduction « par défaut » des propriétés du manifeste. C'est-à-dire, les valeurs locales qui ne sont pas mentionnées dans la liste des locales.
installs_allowed_from
(facultatif) Un tableau des origines qui sont autorisées à déclencher l'installation de l'application. Ce champ vous autorise à déléguer explicitement les privilèges d'installation aux sites ou magasins avec lesquels vous êtes en relation.  Ce champ doit être respecté par le dépôt des applications (et finalement, le user agent). S'il est omis, l'installation ne peut être déclenchée que depuis l'origine où l'application est hébergée. Le tableau ["*"] signifie que les installations de l'applications sont autorisées depuis n'importe quel site.
version
(optional) A string that represents the version of the app. The repository does not use this value in any way, but you can embed this string into the manifest and extract it to help deal with various update cases. See the section on updating, below.
widget
(optional) An HTML document that is designed to be rendered inside an {{ HTMLElement("iframe") }} to give users an abbreviated view of your app.
path
The path to the HTML document to be displayed. See Path Handling. If not present, the widget URL is assumed to be the same as the app origin.
width
Un nombre entier entre 10 et 1000 (inclus) qui représente la largeur souhaitée du widget.
height
Un nombre entier entre 10 et 1000 (inclus) qui représente la hauteur souhaitée du widget.

Gestion du répertoire

Tous les champs qui réclament des répertoires dans le manifeste doivent avoir des chemins absolus (par exemple, '/images/monicone.png'), et sont fournis depuis la même origine que l'application.

Mise à disposition des manifestes

Le manifeste d'application doit être mis à disposition dans le même répertoire d'origine que celui de l'application.

Lorsqu'il est fourni par des fichiers statiques, il est vivement recommandé de stocker le manifeste avec une extension de fichier .webapp.  Les manifestes d'applications DOIVENT être fournis avec un en-tête Content-Type à la valeur application/x-web-app-manifest+json.  Les manifestes peuvent être fournis via le protocole SSL pour to atténuer certains risques d'attaques.

Le document doit en principe être en UTF-8, mais un autre encodage peut être précisé avec un paramètre charset dans le Content-Type de l'en-tête (i.e. Content-Type: application/x-web-app-manifest+json; charset=ISO-8859-4).

User Agents when possible SHOULD meaningfully message the site identity and TLS status when prompting a user to install an app.

Mise à jour des manifestes

An app respects the normal rules for Web caching, and may optionally use advanced mechanisms for improved start-up, like the HTML5 AppCache. Given this, there are no special considerations for updating the normal resources that an app uses.

Web apps are different, however, in the handling of the manifest. Some changes to a manifest may require user approval. Depending on the implementation of the app repository, it may be unclear whether an update has occurred.

As a clean way to deal with this issue, you can provide a version property in the app manifest. You can later check the version by inspecting the return value of the navigator.mozApps.getInstalledBy() function. If the user's installed version is not up-to-date, you can trigger an update using navigator.mozApps.install().

La valeur attribuée à version est une chaîne qui sera opaque pour le dépôt, vous pouvez donc utiliser n'importe quel système de versionnage que vous le souhaitez.

Source de la révision

<div class="wikistyle"> <p>{{ TranslationInProgress() }}</p> <p><br> <span style="background-color:#ffff00;">statut : traduction en cours</span></p> <p>Le manifeste d'une application contient toutes les informations dont un navigateur a besoin pour interagir avec elle. Il fournit à la fois des éléments lisibles par un être humain (un nom, un jeu d'icônes et une description, en de multiples langues si nécessaire) et d'autres qui ne sont lisibles que par une machine et permettent au navigateur d'afficher et faire tourner les applications. Le manifeste et l'origine de l'application (protocole, nom de l'hôte et numéro de port) constituent à eux deux la description complète d'une application installée. Le manifeste est encodé dans une structure de données de fichier <a class="external" href="http://www.json.org/" title="http://www.json.org/">JSON</a> ; l'installation d'une application consiste à donner l'URL de ce fichier au navigateur.</p> <p>Pour publier vous-même une application, sur une page qui vous appartient, vous déclenchez son installation (par exemple, en appelant <a href="/en/Apps/Apps_JavaScript_API/navigator.mozApps.install" title="en/Apps/Apps_JavaScript_API/navigator.mozApps.install"><code>navigator.mozApps.install()</code></a> depuis un bouton). Quand un magasin ou une instance autorisée publie une application, il déclenche son installation en fournissant au navigateur l'adresse URL du manifeste de l'application hébergéee.</p> <h2>Un exemple de manifeste</h2>
<p>Vous pouvez copier le texte suivant dans un fichier texte et remplacer les valeurs par vos propres informations.</p>
<p>{{ syntax.javascript{code: "{\n  \"version\": \"1.0\",\n  \"name\": \"MozillaBall\",\n  \"description\": \"Exciting Open Web development action!\",\n  \"icons\": {\n    \"16\": \"/img/icon-16.png\",\n    \"48\": \"/img/icon-48.png\",\n    \"128\": \"/img/icon-128.png\"\n  },\n  \"widget\": {\n    \"path\": \"/widget.html\",\n    \"width\": 100,\n    \"height\": 200\n  },\n  \"developer\": {\n    \"name\": \"Mozilla Labs\",\n    \"url\": \"http://mozillalabs.com\"\n  },\n  \"installs_allowed_from\": [\n    \"https://appstore.mozillalabs.com\"\n  ],\n  \"locales\": {\n    \"es\": {\n      \"description\": \"¡Acción abierta emocionante del desarrollo del Web!\",\n      \"developer\": {\n        \"url\": \"http://es.mozillalabs.com/\"\n      }\n    },\n    \"fr\": {\n      \"description\": \"Une façon nouvelle et excitante de développer des applications pour le Web!\",\n      \"développeur\": {\n        \"url\": \"http://fr.mozillalabs.com/\"\n      }\n    },\n    \"it\": {\n      \"description\": \"Azione aperta emozionante di sviluppo di fotoricettore!\",\n      \"developer\": {\n        \"url\": \"http://it.mozillalabs.com/\"\n      }\n    }\n  },\n  \"default_locale\": \"en\"\n}\n"} }}</p><h2>Définition des champs</h2>
<p>Voici les champs autorisés dans le manifeste de l'application :</p>
<dl> <dt>name</dt> <dd>Un nom pour l'application, lisible par un être humain, d'une longueur maximum de 128 caractères).</dd> <dt>description</dt> <dd>Une description de l'application lisible par un être humain, d'une longueur maximum de 1024 caractères.</dd> <dt>launch_path</dt> <dd>(facultatif) Le répertoire de l'origine de l'application qui est chargé au lancement. À défaut, l'URL de lancement est considérée comme l'origine de l'application. Voir <a href="#path-handling">Gestion du répertoire</a>.</dd> <dt>icons</dt> <dd>(facultatif) <span>Une liste des tailles d'icônes avec le chemin correspondant, celui-ci pouvant être un chemin absolu ou une data URL</span>. Chaque élément doit inclure une image carrée qui représente visuellement l'application.</dd> <dt>developer</dt> <dd>(facultatif) Des informations sur le développeur de l'application, utilisables pour un repo et un tableau de bord. <dl> <dt>name</dt> <dd>Le nom du développeur.</dd> <dt>url</dt> <dd>L'adresse URL d'un site qui propose davantage d'informations sur le développeur de l'application. Cette adresse est généralement fournie quand l'utilisateur clique sur le nom du développeur de l'application lorsque sont affichés les détails sur une application dans le tableau de bord (ou le navigateur).</dd> </dl> </dd> <dt>locales</dt> <dd>(facultatif) Un ensemble de ressources spécifiques à chaque langue qui remplace les données contenues dans le manifeste, qu'utilisent les interfaces utilisateur pour fournir des vues localisées. Chaque élément de « locale » est associé à une clé avec un <a class="external" href="http://www.ietf.org/rfc/rfc4646.txt">tag de locale</a>, et contient une représentation simplifiée du manifeste ; chaque champ présent dans la valeur <code>locale</code> remplacera le champ correspondant du manifeste. Certains champs ne peuvent pas être remplacés, en particulier <code>default_locale</code>, le champ <code>locales</code>, lui-même et <code>installs_allowed_from </code>; un manifeste qui remplacerait un quelconque de ces champs serait invalide. Quand <code>locales</code> est représenté, <code>default_locale</code> doit obligatoirement être présent aussi.</dd> <dt>default_locale</dt> <dd>(nécessaire dès que <code>locales</code> est présent) Le tag de locale pour la traduction « par défaut » des propriétés du manifeste. C'est-à-dire, les valeurs locales qui ne sont pas mentionnées dans la liste des <code>locales</code>.</dd> <dt>installs_allowed_from</dt> <dd>(facultatif) Un tableau des origines qui sont autorisées à déclencher l'installation de l'application. Ce champ vous autorise à déléguer explicitement les privilèges d'installation aux sites ou magasins avec lesquels vous êtes en relation.  Ce champ doit être respecté par le dépôt des applications (et finalement, le user agent). S'il est omis, l'installation ne peut être déclenchée que depuis l'origine où l'application est hébergée. Le tableau <code>["*"]</code> signifie que les installations de l'applications sont autorisées depuis n'importe quel site.</dd> <dt>version</dt> <dd>(optional) A string that represents the version of the app. The repository does not use this value in any way, but you can embed this string into the manifest and extract it to help deal with various update cases. See the section on updating, below.</dd> <dt>widget</dt> <dd>(optional) An HTML document that is designed to be rendered inside an {{ HTMLElement("iframe") }} to give users an abbreviated view of your app. <dl> <dt>path</dt> <dd>The path to the HTML document to be displayed. See <a href="#path-handling">Path Handling</a>. If not present, the widget URL is assumed to be the same as the app origin.</dd> <dt>width</dt> <dd>Un nombre entier entre 10 et 1000 (inclus) qui représente la largeur souhaitée du widget.</dd> <dt>height</dt> <dd>Un nombre entier entre 10 et 1000 (inclus) qui représente la hauteur souhaitée du widget.</dd> </dl> </dd>
</dl>
<h3>Gestion du répertoire <a name="path-handling"></a></h3><a name="path-handling">
<p>Tous les champs qui réclament des répertoires dans le manifeste doivent avoir des chemins absolus (par exemple, '/images/monicone.png'), et sont fournis depuis la même origine que l'application.</p><h2>Mise à disposition des manifestes</h2>
<p>Le manifeste d'application doit être mis à disposition dans le même répertoire d'origine que celui de l'application.</p>
<p>Lorsqu'il est fourni par des fichiers statiques, il est <strong>vivement recommandé </strong>de stocker le manifeste avec une extension de fichier <code>.webapp</code>.  Les manifestes d'applications DOIVENT être fournis avec un en-tête <code>Content-Type</code> à la valeur <code>application/x-web-app-manifest+json</code>.  Les manifestes peuvent être fournis via le protocole SSL pour to atténuer certains risques d'attaques.</p>
<p>Le document doit en principe être en UTF-8, mais un autre encodage peut être précisé avec un paramètre <code>charset</code> dans le <code>Content-Type</code> de l'en-tête (i.e. <code>Content-Type: application/x-web-app-manifest+json; charset=ISO-8859-4</code>).</p>
<p>User Agents when possible SHOULD meaningfully message the site identity and TLS status when prompting a user to install an app.</p><h2>Mise à jour des manifestes</h2>
</a><p><a name="path-handling">An app respects the normal rules for Web caching, and may optionally use advanced mechanisms for improved start-up, like the </a><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#offline">HTML5 AppCache</a>. Given this, there are no special considerations for updating the normal resources that an app uses.</p>
<p>Web apps are different, however, in the handling of the manifest. Some changes to a manifest may require user approval. Depending on the implementation of the app repository, it may be unclear whether an update has occurred.</p>
<p>As a clean way to deal with this issue, you can provide a <code>version</code> property in the app manifest. You can later check the version by inspecting the return value of the <a href="/en/Apps/Apps_JavaScript_API/navigator.mozApps.getInstalledBy" title="en/Apps/Apps_JavaScript_API/navigator.mozApps.getInstalledBy"><code>navigator.mozApps.getInstalledBy()</code></a> function. If the user's installed version is not up-to-date, you can trigger an update using <code><a href="/en/Apps/Apps_JavaScript_API/navigator.mozApps.install" title="https://developer.mozilla.org/en/Apps/Apps_JavaScript_API/navigator.mozApps.install">navigator.mozApps.install()</a>.</code></p>
<p>La valeur attribuée à <code>version</code> est une chaîne qui sera opaque pour le dépôt, vous pouvez donc utiliser n'importe quel système de versionnage que vous le souhaitez.</p></div>
Revenir à cette révision