Quiero agregar un botón de install personalizado para mi aplicación web progresiva dentro del sitio. Reduje muchos artículos y probé la respuesta proporcionada por ellos. utilizan beforeinstallprompt
let deferredPrompt; window.addEventListener('beforeinstallprompt', (e) => { deferredPrompt = e; });pero el problema al que me enfrento es que quiero que el botón instale directamente el pwa en lugar de activar el mensaje de instalación. ¿Es posible? Si es así, ¿cómo puedo lograrlo? gracias de antemano.
La respuesta es que no puedes. De acuerdo con la especificación del manifiesto :
Por diseño, esta especificación no proporciona a los desarrolladores una API explícita para "instalar" una aplicación web.
Pruebe el siguiente código,
Paso 1 - Crear botón o cualquier controlador
<button id="installApp">Install</button>Paso 2: agregue el código js a continuación en sus scripts noy en serviceworker
let deferredPrompt; window.addEventListener('beforeinstallprompt', (e) => { deferredPrompt = e; }); const installApp = document.getElementById('installApp'); installApp.addEventListener('click', async () => { if (deferredPrompt !== null) { deferredPrompt.prompt(); const { outcome } = await deferredPrompt.userChoice; if (outcome === 'accepted') { deferredPrompt = null; } } });