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 quel endroit où l'icône d'application est affichée améliore la productivité des utilisateurs et leur engagement avec l'application Web.
L'approche moderne
Définir des raccourcis d'application dans le fichier manifeste de l'application Web
Le menu des raccourcis d'application s'affiche lorsque vous effectuez un clic droit sur l'icône d'application dans la barre des tâches (Windows) ou le Dock (macOS) sur le bureau de l'utilisateur, ou lorsque vous appuyez de manière prolongée sur l'icône de lanceur de l'application sur Android.
Le menu des raccourcis d'application ne s'affiche que pour les Progressive Web Apps installées. Consultez la section Installation de notre module Découvrir les PWA pour en savoir plus sur les exigences d'installation.
Chaque raccourci d'application exprime une intention utilisateur, qui est associée à 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 sont déclarés de manière facultative 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" }]
}
]
}
L'approche classique
Permettre à l'utilisateur de faire glisser des liens vers la barre de favoris
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 déposer dans la barre de favoris de son navigateur. Il pourra ainsi démarrer rapidement des tâches courantes ou recommandées dans votre application Web.
Documentation complémentaire
Démo
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();
});
}