Search code examples
iosmobile-safarisafari-web-extension

Detect when user closes pop up in iOS Safari web extension


I'm trying to find a way to detect when the user closes or dismisses the pop-up in an iOS Safari web extension.

I've tried listening for onblur, pagehide, and visibilitychange events but they are not fired when the popup is closed. All of these events do fire on macOS Safari 16, though.

Opening up a port by running browser.runtime.connect() in the popup and listening for onConnect/onDisconnect events in the background script only causes the onConnect event to fire when the popup is opened.


Solution

  • The best solution I found was listening for the blur event. It seems to be fired only when the pop up is closed, but only if the user first taps somewhere inside the popup.