Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Window : évènement beforeinstallprompt

Limited availability

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

L'évènement beforeinstallprompt de l'interface Window se déclenche lorsque le navigateur a détecté qu'un site web peut être installé en tant qu'application web progressive.

Il n'y a pas de moment garanti pour le déclenchement de cet évènement, mais il se produit généralement au chargement de la page.

L'utilisation typique de cet évènement est lorsqu'une application web souhaite fournir sa propre interface d'installation intégrée, invitant l'utilisateur·ice à installer l'application, plutôt que celle générique fournie par le navigateur. Cela permet à l'application de donner plus de contexte sur l'application, en expliquant à l'utilisateur·ice pourquoi il·elle pourrait vouloir l'installer.

Dans ce scénario, le gestionnaire de cet évènement va :

  • Conserver une référence à l'objet BeforeInstallPromptEvent qui lui est transmis.
  • Afficher son interface d'installation intégrée (celle-ci doit être cachée par défaut, car tous les navigateurs ne prennent pas en charge l'installation).

Lorsque l'utilisateur·ice utilise l'interface d'installation intégrée pour installer l'application, cette interface appelle la méthode prompt() de l'objet BeforeInstallPromptEvent conservé pour afficher la demande d'installation.

Syntaxe

Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou définissez une propriété de gestionnaire d'évènement.

js
addEventListener("beforeinstallprompt", (event) => { })

onbeforeinstallprompt = (event) => { }

Type d'évènement

Un objet BeforeInstallPromptEvent. Hérite de Event.

Event BeforeInstallPromptEvent

Propriétés de l'évènement

Hérite des propriétés de son parent, Event.

BeforeInstallPromptEvent.platforms Lecture seule Non standard Expérimental

Retourne un tableau de chaînes de caractères contenant les plateformes sur lesquelles l'évènement a été déclenché. Ceci est fourni pour les agents utilisateur qui souhaitent présenter un choix de versions à l'utilisateur·ice, comme par exemple « web » ou « play », ce qui permettrait à l'utilisateur·ice de choisir entre une version web ou une version Android.

BeforeInstallPromptEvent.userChoice Lecture seule Non standard Expérimental

Retourne une promesse (Promise) qui se résout en un objet décrivant le choix de l'utilisateur·ice lorsqu'il·elle a été invité·e à installer l'application.

Méthodes de l'évènement

BeforeInstallPromptEvent.prompt() Non standard Expérimental

Affiche une invite demandant à l'utilisateur·ice s'il·elle souhaite installer l'application. Cette méthode retourne une promesse (Promise) qui se résout en un objet décrivant le choix de l'utilisateur·ice lorsqu'il·elle a été invité·e à installer l'application.

Exemples

Dans l'exemple suivant, une application fournit son propre bouton d'installation, qui a un id de "install". Initialement, le bouton est caché.

html
<button id="install" hidden>Installer</button>

Le gestionnaire beforeinstallprompt :

  • Annule l'évènement, ce qui empêche le navigateur d'afficher sa propre interface d'installation sur certaines plateformes.
  • Assigne l'objet BeforeInstallPromptEvent à une variable, afin qu'il puisse être utilisé plus tard.
  • Affiche le bouton d'installation de l'application.
js
let installPrompt = null;
const installButton = document.querySelector("#install");

window.addEventListener("beforeinstallprompt", (event) => {
  event.preventDefault();
  installPrompt = event;
  installButton.removeAttribute("hidden");
});

Lorsque l'utilisateur·ice clique sur le bouton d'installation de l'application :

  • Appelle la méthode prompt() de l'objet d'évènement stocké, pour déclencher l'invite d'installation.
  • Réinitialise son état en effaçant la variable installPrompt et en se cachant à nouveau.
js
installButton.addEventListener("click", async () => {
  if (!installPrompt) {
    return;
  }
  const result = await installPrompt.prompt();
  console.log(`Invite d'installation : ${result.outcome}`);
  installPrompt = null;
  installButton.setAttribute("hidden", "");
});

Spécifications

Specification
Manifest Incubations
# onbeforeinstallprompt-attribute

Compatibilité des navigateurs

Voir aussi