Créer des raccourcis d'application

François Beaufort
François Beaufort

Les raccourcis d'application aident les utilisateurs à démarrer rapidement des tâches courantes ou recommandées dans votre application Web. L'accès facile à ces tâches depuis n'importe où l'icône de l'application améliore la productivité des utilisateurs ainsi que leur engagement envers l'application Web.

L'approche moderne

Définir des raccourcis d'application dans le fichier manifeste de l'application Web

Pour accéder au menu des raccourcis d'application, effectuez un clic droit sur l'icône d'une application dans la barre des tâches (Windows) ou le dock (macOS) du bureau de l'utilisateur, ou appuyez de manière prolongée sur l'icône de lanceur de l'application sur Android.

Un menu des raccourcis d'application ouvert sur Android.
Menu des raccourcis des applications ouvert sur Android
Un menu des raccourcis d'application ouvert sous Windows.
Menu des raccourcis de l'application ouvert sur Windows

Le menu des raccourcis d'application ne s'affiche que pour les progressive web apps (applications Web progressives) installées. Consultez la section Installation de notre module Apprendre à utiliser les PWA pour en savoir plus sur les conditions d'installation requises.

Chaque raccourci d'application exprime un intent utilisateur, chacun étant associé à une URL dans le champ d'application de votre application Web. L'URL est ouverte lorsqu'un utilisateur active le raccourci d'application.

Les raccourcis d'application sont éventuellement déclarés dans le membre de tableau shortcuts du fichier manifeste d'application Web. Vous trouverez ci-dessous un exemple de fichier manifeste d'application Web potentiel.

{
  "name": "Player FM",
  "start_url": "https://player.fm?utm_source=homescreen",
  "shortcuts": [
    {
      "name": "Open Play Later",
      "short_name": "Play Later",
      "description": "View the list of podcasts you saved for later",
      "url": "/play-later?utm_source=homescreen",
      "icons": [{ "src": "/icons/play-later.png", "sizes": "192x192" }]
    },
    {
      "name": "View Subscriptions",
      "short_name": "Subscriptions",
      "description": "View the list of podcasts you listen to",
      "url": "/subscriptions?utm_source=homescreen",
      "icons": [{ "src": "/icons/subscriptions.png", "sizes": "192x192" }]
    }
  ]
}

Navigateurs pris en charge

  • 96
  • 96
  • x
  • 17,4

Source

Méthode classique

Si l'application n'est pas encore installée, vous pouvez suggérer à l'utilisateur de faire glisser certains liens depuis votre page Web et de les libérer dans la barre de favoris de son navigateur. De cette façon, ils peuvent rapidement lancer des tâches courantes ou recommandées dans votre application Web.

Complément d'informations

Démonstration

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="color-scheme" content="dark light" />
    <link rel="manifest" href="manifest.json" />
    <title>How to create app shortcuts</title>
    <!-- TODO: Devsite - Removed inline handlers -->
    <!-- <script>
      if ('serviceWorker' in navigator) {
        window.addEventListener('load', () => {
          navigator.serviceWorker.register('sw.js');
        });
      }
    </script>
    <script type="module" src="script.js"></script> -->
  </head>
  <body>
    <h1>How to create app shortcuts</h1>
    <ol>
      <li>
        You can drag these <a href="blue.html">blue page</a> or
        <a href="red.html">red page</a> links to the bookmarks bar
        and access them later.
      </li>
      <li>
        Install the app by clicking the button below. After the installation,
        the button is disabled.
        <p>
          <button disabled type="button">Install</button>
        </p>
      </li>
    </ol>
  </body>
</html>

JS


        // The install button.
const installButton = document.querySelector('button');

// Only relevant for browsers that support installation.
if ('BeforeInstallPromptEvent' in window) {
  // Variable to stash the `BeforeInstallPromptEvent`.
  let installEvent = null;

  // Function that will be run when the app is installed.
  const onInstall = () => {
    // Disable the install button.
    installButton.disabled = true;
    // No longer needed.
    installEvent = null;
  };

  window.addEventListener('beforeinstallprompt', (event) => {
    // Do not show the install prompt quite yet.
    event.preventDefault();
    // Stash the `BeforeInstallPromptEvent` for later.
    installEvent = event;
    // Enable the install button.
    installButton.disabled = false;
  });

  installButton.addEventListener('click', async () => {
    // If there is no stashed `BeforeInstallPromptEvent`, return.
    if (!installEvent) {
      return;
    }
    // Use the stashed `BeforeInstallPromptEvent` to prompt the user.
    installEvent.prompt();
    const result = await installEvent.userChoice;
    // If the user installs the app, run `onInstall()`.
    if (result.outcome === 'accepted') {
      onInstall();
    }
  });

  // The user can decide to ignore the install button
  // and just use the browser prompt directly. In this case
  // likewise run `onInstall()`.
  window.addEventListener('appinstalled', () => {
    onInstall();
  });
}