Fichier manifeste d'application Web

Le fichier manifeste de l'application Web est un fichier que vous créez pour indiquer au navigateur comment vous souhaitez que votre contenu Web s'affiche en tant qu'application dans le système d'exploitation. Le fichier manifeste peut inclure des informations de base telles que le nom, l'icône et la couleur du thème de l'application, des préférences avancées telles que l'orientation souhaitée et les raccourcis d'application, ainsi que des métadonnées de catalogue telles que des captures d'écran.

Chaque PWA doit inclure un seul fichier manifeste par application, généralement hébergé dans le dossier racine et associé à toutes les pages HTML à partir desquelles votre PWA peut être installée. Son extension officielle est .webmanifest. Vous pouvez donc nommer votre fichier manifeste app.webmanifest.

Ajouter un fichier manifeste d'application Web à votre PWA

Pour créer un fichier manifeste d'application Web, créez d'abord un fichier texte contenant un objet JSON qui contient au moins un champ name avec une valeur de chaîne:

app.webmanifest:

{
   "name": "My First Application"
}

Mais créer le fichier ne suffit pas. Le navigateur doit également savoir qu'il existe.

Associer votre fichier manifeste

Pour que le navigateur connaisse votre fichier manifeste d'application Web, vous devez l'associer à votre PWA à l'aide d'un élément HTML <link> et de l'attribut rel défini sur manifest sur toutes les pages HTML de votre PWA. Cela ressemble à la façon dont vous associez une feuille de style CSS à un document.

index.html:

<html lang="en">
  <title>This is my first PWA</title>
  <link rel="manifest" href="/app.webmanifest">

Déboguer le fichier manifeste

Pour vous assurer que le fichier manifeste est correctement configuré, vous pouvez utiliser l'outil d'inspection dans Firefox et les outils pour les développeurs dans tous les navigateurs basés sur Chromium.

Pour les navigateurs Chromium

Dans les outils de développement

  1. Dans le volet de gauche, sous Application, sélectionnez Fichier manifeste.
  2. Vérifiez les champs du fichier manifeste tels qu'ils sont analysés par le navigateur.

Pour Firefox

  1. Ouvrez l'outil d'inspection.
  2. Accédez à l'onglet "Application".
  3. Sélectionnez l'option "Fichier manifeste" dans le panneau de gauche.
  4. Vérifiez les champs du fichier manifeste tels qu'ils sont analysés par le navigateur.

Concevoir votre expérience PWA

Maintenant que votre PWA est connectée à son fichier manifeste, il est temps de remplir le reste des champs pour définir l'expérience de vos utilisateurs.

Champs de base

Le premier ensemble de champs représente les informations de base sur votre PWA. Ils permettent de créer l'icône et la fenêtre de la PWA installée, et de déterminer son démarrage. Les voici :

name
Nom complet de votre PWA. Il s'affiche avec l'icône sur l'écran d'accueil, le lanceur d'applications, le dock ou le menu du système d'exploitation.
short_name
Facultatif, nom abrégé de votre PWA, utilisé lorsqu'il n'y a pas assez d'espace pour afficher la valeur complète du champ name. Ne dépassez pas 12 caractères pour réduire le risque de troncature.
icons
Tableau d'objets d'icônes avec les champs src, type, sizes et purpose facultatifs, décrivant les images qui doivent représenter la PWA.
start_url
URL que la PWA doit charger lorsque l'utilisateur la lance à partir de l'icône installée. Nous vous recommandons d'utiliser un chemin absolu. Par conséquent, si la page d'accueil de votre PWA est la racine de votre site, vous pouvez définir cette valeur sur "/" pour l'ouvrir lorsque votre application démarre. Si vous ne fournissez pas d'URL de démarrage, le navigateur peut utiliser l'URL à partir de laquelle la PWA a été installée comme point de départ. Il peut s'agir d'un lien profond, par exemple les informations détaillées sur un produit au lieu de votre écran d'accueil.
display
Valeur fullscreen, standalone, minimal-ui ou browser, qui décrit comment l'OS doit dessiner la fenêtre de la PWA. Pour en savoir plus sur les différents modes d'affichage, consultez le chapitre "Conception d'applications". La plupart des cas d'utilisation implémentent standalone.
id
Chaîne qui identifie de manière unique cette PWA par rapport aux autres qui peuvent être hébergées sur la même origine. Si elle n'est pas définie, start_url est utilisé comme valeur de remplacement. N'oubliez pas que si vous modifiez start_url à l'avenir (par exemple, lorsque vous modifiez la valeur d'une chaîne de requête), vous risquez de supprimer la capacité du navigateur à détecter qu'une PWA est déjà installée.

Icônes

L'icône de votre PWA est son identité visuelle sur les appareils de vos utilisateurs lorsqu'elle est installée. Il est donc important d'en définir au moins une. Étant donné que la propriété icons est une collection d'objets d'icône, vous pouvez définir plusieurs icônes dans différents formats pour offrir la meilleure expérience possible à vos utilisateurs. Chaque navigateur sélectionne une ou plusieurs icônes en fonction de ses besoins et du système d'exploitation sur lequel il est installé, les icônes les plus proches des spécifications requises.

Si vous ne devez choisir qu'une seule taille d'icône, elle doit être de 512 x 512 pixels. Toutefois, nous vous recommandons de fournir d'autres tailles, y compris 192 x 192, 384 x 384 et 1 024 x 1 024 pixels.

"icons": [
   {
      "src": "icons/512.png",
      "type": "image/png",
      "sizes": "512x512"
   },
   {
      "src": "icons/1024.png",
      "type": "image/png",
      "sizes": "1024x1024"
   }
]

Si vous ne fournissez pas d'icône ou si les icônes ne sont pas aux tailles recommandées, vous ne respecterez pas les critères d'installation sur certaines plates-formes. Sur d'autres plates-formes, l'icône est générée automatiquement, par exemple à partir d'une capture d'écran de la PWA ou à l'aide d'une icône générique.

Icônes masquables

Certains systèmes d'exploitation, comme Android, adaptent les icônes à différentes tailles et formes. Par exemple, sur Android 12, différents fabricants ou paramètres peuvent modifier la forme des icônes, en passant des cercles aux carrés, puis aux carrés aux coins arrondis. Pour prendre en charge ces types d'icônes adaptatives, vous pouvez fournir une icône masquable à l'aide du champ purpose.

Pour ce faire, fournissez un fichier image carré dont l'icône principale est contenue dans une "zone de sûreté", un cercle centré sur l'icône avec un rayon de 40 % de la largeur de l'icône. (voir l'image ci-dessous). Les appareils compatibles avec les icônes masquables masqueront votre icône si nécessaire.

Zone de sécurité représentée par un cercle de 40 % de rayon centré dans l&#39;icône carrée

Voici un exemple d'icône masquable affichée dans plusieurs formes couramment utilisées:

Dans l'image suivante, si vous utilisez l'icône de gauche comme icône masquable, vous obtiendrez de mauvais résultats sur les appareils lorsqu'un masque de forme sera appliqué.

Icône non adaptée à une icône masquable.

Cette image pourrait être utilisable avec plus de marge intérieure.

L&#39;icône avec plus de marge intérieure est adaptée aux masques.

Les icônes masquables doivent mesurer au moins 512 x 512 pixels. Une fois que vous avez créé une collection, vous pouvez l'ajouter à votre collection icons pour améliorer l'expérience sur les appareils compatibles:

"icons": [
   {
      "src": "/icons/512.png",
      "type": "image/png",
      "sizes": "512x512"
   },
   {
      "src": "/icons/1024.png",
      "type": "image/png",
      "sizes": "1024x1024"
   },
   {
      "src": "/icons/512-maskable.png",
      "type": "image/png",
      "sizes": "512x512",
      "purpose": "maskable"
   },
]

Dans la plupart des cas, si votre icône masquable ne s'affiche pas correctement, vous pouvez l'améliorer en ajoutant plus de marge intérieure. Maskable.app est un outil en ligne sans frais qui vous permet de tester et de créer une version masquable de votre icône.

Si votre icône a des objectifs généraux et masquables, vous pouvez définir le champ purpose sur "any maskable". Pour en savoir plus, consultez la documentation MDN sur le fichier manifeste d'application Web.

L'ensemble suivant de champs à inclure améliorera l'expérience de l'utilisateur, même s'ils ne sont pas obligatoires pour l'installabilité.

theme_color
Couleur par défaut de l'application, qui peut parfois affecter la façon dont l'OS affiche le site (par exemple, la couleur de la fenêtre et de la barre de titre sur un ordinateur ou la couleur de la barre d'état sur un appareil mobile). Cette couleur peut être remplacée par l'élément HTML <meta> theme-color.
background_color
Couleur d'espace réservé à afficher en arrière-plan de l'application avant le chargement de sa feuille de style.
Safari sur iOS et iPadOS, ainsi que la plupart des navigateurs pour ordinateur, ignorent actuellement ce champ.
scope
Modifie le champ d'application de la PWA, ce qui vous permet de définir ce qui est affiché et ce qui ne l'est pas dans la fenêtre de l'application installée. Par exemple, si vous créez un lien vers une page en dehors du champ d'application, elle s'affiche dans un navigateur intégré à l'application plutôt que dans la fenêtre de votre PWA. Toutefois, cela ne modifie pas la portée de votre service worker.

L'image suivante montre comment le champ theme_color est utilisé pour la barre de titre sur un ordinateur lorsque vous installez une PWA.

Même PWA installée sur ordinateur avec une couleur de thème différente.

Lorsque vous définissez des couleurs dans le fichier manifeste, par exemple dans theme_color et background_color, vous devez utiliser des couleurs nommées CSS, telles que salmon ou orange, des couleurs RVB telles que #FF5500 ou des fonctions de couleur sans transparence telles que rgb() ou hsl(). Pour en savoir plus, consultez le chapitre sur la conception d'applications.

Essayer

Écrans de démarrage

Sur certains appareils, une image statique est affichée pendant le chargement de votre PWA afin de fournir un retour immédiat à l'utilisateur.

Android utilise les valeurs theme_color, background_color et icon pour générer l'écran de démarrage.

Lorsque vous installez une PWA sur Android, l'appareil génère un écran de démarrage avec les informations provenant de votre fichier manifeste, comme illustré dans le diagramme suivant.

Une PWA sur l&#39;écran de démarrage d&#39;Android qui utilise des valeurs différentes de celles du fichier manifeste.

En revanche, Safari sur iOS et iPadOS n'utilise pas le fichier manifeste de l'application Web pour générer des écrans de démarrage. Ils utilisent plutôt une image associée à partir d'un élément <link> propriétaire, comme ils le font pour les icônes. Pour en savoir plus, consultez le chapitre sur les améliorations.

Champs étendus

L'ensemble suivant de champs fournit des informations supplémentaires sur votre PWA. Ils sont tous facultatifs.

lang
Tag de langue spécifiant la langue principale des valeurs du fichier manifeste, par exemple en pour l'anglais, pt-BR pour le portugais du Brésil ou in pour l'hindi.
dir
Sens d'affichage des champs de fichier manifeste compatibles avec le sens (par exemple, name, short_name et description). Les valeurs valides sont auto, ltr (de gauche à droite) et rtl (de droite à gauche).
orientation
Orientation souhaitée pour l'application une fois installée. Un jeu peut définir cette valeur pour demander une orientation en mode paysage uniquement. Plusieurs valeurs sont acceptées, mais si elles sont incluses, il s'agit généralement de portrait ou de landscape de manière explicite.

Champs promotionnels

Le quatrième ensemble de champs vous permet de fournir des informations promotionnelles sur votre PWA, par exemple dans les flux d'installation, les fiches et les résultats de recherche.

description
Explication de ce qu'est une PWA
screenshots
Tableau d'objets de capture d'écran avec src, type et sizes (similaire à l'objet icons) destiné à présenter la PWA. La taille n'est pas limitée.
categories
Matrice des catégories auxquelles la PWA doit appartenir pour être utilisée comme indice pour les fiches, éventuellement à partir de la liste des catégories connues. Ces valeurs sont généralement en minuscules.
iarc_rating_id
Code de certification de l'International Age Rating Coalition pour la PWA, le cas échéant. Elle permet de déterminer à quel âge votre PWA est adaptée.

Vous pouvez déjà voir ces champs promotionnels en action. Sur Android, par exemple, si votre PWA est installable et que vous fournissez des valeurs pour au moins les champs description et screenshots, la boîte de dialogue d'installation se transforme d'une simple barre d'informations "Ajouter à l'écran d'accueil" en une boîte de dialogue d'installation plus riche, semblable à celle d'une plate-forme de téléchargement d'applications.

Sur Android, vous pouvez obtenir une interface utilisateur d'installation plus agréable si vous fournissez des valeurs pour les champs promotionnels, comme vous pouvez le voir dans la vidéo suivante.

Découvrez comment ces champs promotionnels sont utilisés:

Champs "Fonctionnalités"

Enfin, un certain nombre de champs sont liés à différentes fonctionnalités que votre PWA peut utiliser dans les navigateurs compatibles, tels que les champs shortcuts, share_target et display_override, comme nous l'expliquons dans le chapitre sur les fonctionnalités. Il existe également des champs, tels que related_apps et prefer_related_apps (pour en savoir plus, consultez le chapitre sur la détection), qui permettent de connecter votre PWA aux applications installées, souvent à partir d'une plate-forme de téléchargement d'applications.

De nombreux nouveaux champs pourraient apparaître à l'avenir, à mesure que les navigateurs ajouteront des fonctionnalités aux applications Web progressives.

Ressources