Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PWA home screen "uninstall" DOM event

I am trying to keep track of whether a web app has been installed to the user's home-screen using a value in localStorage.

I know there is DOM event that fires when a web app has been installed into a user's home-screen, but is there an event for when it has been uninstalled?

The type of event I have in mind would ideally be scheduled in a manner similar to (and behave in a manner similar to) onunload. (ie. an uncancellable event that allows me to schedule some last bit of work before the app is destroyed)

eg:

window.addEventListener('appinstalled', function(e) {
  console.log('onappinstalled', e)
  localStorage.setItem('APP_INSTALLED', '1')
})

// given the above, is anything like the following possible?
window.addEventListener('appuninstalled', function(e) {
  console.log('onappuninstalled', e)
  localStorage.setItem('APP_INSTALLED', '0')
})
like image 973
ant Avatar asked Oct 27 '25 07:10

ant


2 Answers

I realised that once a user has uninstalled the app from their home-screen, the browser will begin prompting to install the app to the home-screen, again, provided you have met the criteria.

So by using the onbeforeinstallprompt event, there is an opportunity to clear the 'APP_INSTALLED' key from localStorage, and perform other arbitrary work.

eg:

window.addEventListener('beforeinstallprompt', function(e) {
  localStorage.removeItem('APP_INSTALLED')
})

Moreover, this localStorage key may have already been cleared if the user elected to delete all data associated with the app when uninstalling the app from their home-screen.

like image 126
ant Avatar answered Oct 29 '25 07:10

ant


I realised that once a user has uninstalled the app from their home-screen, the browser will begin prompting to install the app to the home-screen, again, provided you have met the criteria.

So by using the onbeforeinstallprompt event, there is an opportunity to clear the 'APP_INSTALLED' key from localStorage, and perform other arbitrary work.

eg:

window.addEventListener('beforeinstallprompt', function(e) {
  localStorage.removeItem('APP_INSTALLED')
})

Moreover, this localStorage key may have already been cleared if the user elected to delete all data associated with the app when uninstalling the app from their home-screen.

like image 42
ant Avatar answered Oct 29 '25 07:10

ant



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!