feat: add pwa install button (#27)

* feat: add pwa tooltip

* feat: add pwa install button
This commit is contained in:
云游君
2022-04-30 20:39:24 +08:00
committed by GitHub
parent 50156534c2
commit 2712616683
9 changed files with 154 additions and 68 deletions

35
src/utils/pwa.ts Normal file
View File

@@ -0,0 +1,35 @@
import { isClient } from '@vueuse/core'
import { useAppStore } from '~/stores/app'
/**
* https://web.dev/customize-install/#detect-install
* @returns
*/
export function installPrompt() {
if (!isClient)
return
const app = useAppStore()
window.addEventListener('beforeinstallprompt', (e) => {
// Prevent the mini-infobar from appearing on mobile
// e.preventDefault()
// Stash the event so it can be triggered later.
app.deferredPrompt = e
// Update UI notify the user they can install the PWA
// showInstallPromotion()
// Optionally, send analytics event that PWA install promo was shown.
// eslint-disable-next-line no-console
console.log('\'beforeinstallprompt\' event was fired.')
})
window.addEventListener('appinstalled', () => {
// Hide the app-provided install promotion
// hideInstallPromotion()
// Clear the deferredPrompt so it can be garbage collected
app.deferredPrompt = null
// Optionally, send analytics event to indicate successful install
// eslint-disable-next-line no-console
console.log('PWA was installed')
})
}