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
BeforeInstallPromptEventqui 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.
addEventListener("beforeinstallprompt", (event) => { })
onbeforeinstallprompt = (event) => { }
Type d'évènement
Un objet BeforeInstallPromptEvent. Hérite de Event.
Propriétés de l'évènement
Hérite des propriétés de son parent, Event.
BeforeInstallPromptEvent.platformsLecture 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.userChoiceLecture 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é.
<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.
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
installPromptet en se cachant à nouveau.
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
- La méthode
BeforeInstallPromptEvent.prompt() - L'interface
BeforeInstallPromptEvent