somewhere
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
// variables
|
||||
let deferredPrompt
|
||||
const events = ['click', 'touchend', 'ontouchend']
|
||||
const customDialog = document.querySelector('.pwa_dialog')
|
||||
const installBtn = document.querySelector('#installPWA')
|
||||
const showPwaDialogBtn = document.querySelector('#showPwaDialog')
|
||||
const closePwaDialogBtn = document.querySelector('#closePwaDialog')
|
||||
|
||||
// functions
|
||||
function showCustomInstallPromotion() {
|
||||
setTimeout(function() {
|
||||
customDialog.classList.add('active')
|
||||
}, 500)
|
||||
}
|
||||
function hideCustomInstallPromotion() {
|
||||
setTimeout(function() {
|
||||
customDialog.classList.remove('active')
|
||||
}, 500)
|
||||
}
|
||||
|
||||
// events
|
||||
window.addEventListener('beforeinstallprompt', e => {
|
||||
// Prevent the mini-infobar from appearing on mobile
|
||||
e.preventDefault()
|
||||
// Stash the event so it can be triggered later.
|
||||
deferredPrompt = e
|
||||
// Update UI notify the user they can install the PWA
|
||||
// if (location.pathname !== '/') showCustomInstallPromotion()
|
||||
showCustomInstallPromotion()
|
||||
})
|
||||
|
||||
events.forEach(evt => {
|
||||
closePwaDialogBtn.addEventListener(evt, e => {
|
||||
hideCustomInstallPromotion()
|
||||
})
|
||||
|
||||
installBtn.addEventListener(evt, e => {
|
||||
// Hide the app provided install promotion
|
||||
hideCustomInstallPromotion()
|
||||
// Show the install prompt
|
||||
deferredPrompt.prompt()
|
||||
// Wait for the user to respond to the prompt
|
||||
deferredPrompt.userChoice.then(choiceResult => {
|
||||
if (choiceResult.outcome === 'accepted') {
|
||||
console.log('User accepted the install prompt')
|
||||
} else {
|
||||
console.log('User dismissed the install prompt')
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
try {
|
||||
showPwaDialogBtn.addEventListener(evt, e => {
|
||||
if (deferredPrompt) {
|
||||
showCustomInstallPromotion()
|
||||
} else {
|
||||
alert('شما قبلا برنامه را نصب کرده اید')
|
||||
}
|
||||
})
|
||||
} catch (e) {}
|
||||
})
|
||||
Reference in New Issue
Block a user