Detectar o evento beforeinstallprompt
Quando o navegador aciona o evento beforeinstallprompt, isso indica que o app da Web pode ser instalado e um botão de instalação pode ser mostrado ao usuário. O evento beforeinstallprompt é disparado quando o app atende aos critérios de
instalabilidade.
A captura do evento permite que os desenvolvedores personalizem a instalação e solicitem que o usuário instale quando considerarem que é o melhor momento.
- Clique em Remixar para editar e tornar o projeto editável.
- Adicione um manipulador de eventos beforeinstallpromptao objetowindow.
- Salve o eventcomo uma variável global. Vamos precisar dele mais tarde para mostrar o comando.
- Mostre o botão de instalação.
Code:
window.addEventListener('beforeinstallprompt', (event) => {
  // Prevent the mini-infobar from appearing on mobile.
  event.preventDefault();
  console.log('👍', 'beforeinstallprompt', event);
  // Stash the event so it can be triggered later.
  window.deferredPrompt = event;
  // Remove the 'hidden' class from the install button container.
  divInstall.classList.toggle('hidden', false);
});
Processar o clique no botão de instalação
Para mostrar a solicitação de instalação, chame prompt() no evento beforeinstallprompt
salvo. A chamada de prompt() é feita no gerenciador de cliques do botão de instalação porque
prompt() precisa ser chamado de um gesto do usuário.
- Adicione um manipulador de eventos de clique para o botão de instalação.
- Chame prompt()no eventobeforeinstallpromptsalvo.
- Registre os resultados do comando.
- Defina o evento beforeinstallpromptsalvo como nulo.
- Ocultar o botão de instalação.
Code:
butInstall.addEventListener('click', async () => {
  console.log('👍', 'butInstall-clicked');
  const promptEvent = window.deferredPrompt;
  if (!promptEvent) {
    // The deferred prompt isn't available.
    return;
  }
  // Show the install prompt.
  promptEvent.prompt();
  // Log the result
  const result = await promptEvent.userChoice;
  console.log('👍', 'userChoice', result);
  // Reset the deferred prompt variable, since
  // prompt() can only be called once.
  window.deferredPrompt = null;
  // Hide the install button.
  divInstall.classList.toggle('hidden', true);
});
Rastrear o evento de instalação
Instalar um web app usando um botão de instalação é apenas uma das maneiras de fazer isso. Eles também podem usar o menu do Chrome, a mini barra de informações e um ícone na omnibox. É possível
rastrear todas essas formas de instalação detectando o evento appinstalled.
- Adicione um manipulador de eventos appinstalledao objetowindow.
- Registre o evento de instalação no Analytics ou em outro mecanismo.
Code:
window.addEventListener('appinstalled', (event) => {
  console.log('👍', 'appinstalled', event);
  // Clear the deferredPrompt so it can be garbage collected
  window.deferredPrompt = null;
});
Leitura adicional
Parabéns, seu app já pode ser instalado!
Confira outras opções:
