Créer des raccourcis d'application

François Beaufort
François Beaufort

Les raccourcis d'application permettent aux utilisateurs de lancer rapidement des tâches courantes ou recommandées dans votre application Web. L'accès facile à ces tâches partout où l'icône de l'application s'affiche améliore la productivité des utilisateurs et augmente leur engagement avec l'application Web.

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

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

Menu de raccourcis d'application ouvert sur Android.
Menu des raccourcis d'application ouvert sur Android
Menu de raccourcis d'application ouvert sous Windows.
Menu des raccourcis d'application ouvert sur Windows

Le menu des raccourcis d'application ne s'affiche que pour les progressive web apps installées. Consultez la section Installation de notre module PWA pour en savoir plus sur les exigences liées à l'implémentation.

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

Les raccourcis d'application peuvent être déclarés dans le membre du 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

  • Chrome : 96.
  • Edge : 96.
  • Firefox: non compatible.
  • Safari : 17.4.

Source

Méthode classique

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

Documentation complémentaire

Démo

<!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>

        // 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();
  });
}