i want to add custom install button for my progressive web app within the site. i red many articles and tried the answer provided by them. they use beforeinstallprompt
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
deferredPrompt = e;
});
but the problem i am facing is i want the button to directly installed the pwa instead of triggering the installation prompt. is it possible, if so how can i achieve that. thanks you in advance.
The answer is, you can't. According to the manifest spec:
By design, this specification does not provide developers with an explicit API to "install" a web application.
Try below code,
Step 1 - Create button or any controller
<button id="installApp">Install</button>
Step 2 - Add below js code in your scripts noy in 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;
}
}
});