Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Question]: How to prevent web notifications from showing when tab is being viewed #1164

Open
thatop007 opened this issue Mar 28, 2024 · 1 comment

Comments

@thatop007
Copy link

thatop007 commented Mar 28, 2024

How can we help?

We currently able to receive web desktop notifications successfully and would like to know if it is possible and how to prevent web notifications from showing when the tab being viewed by the user is our site.

here is our current implementation in our react web app, in particular our attempt to not show the notification if the user is currently looking at our site.

  useEffect(() => {
    function foregroundWillDisplayListener (event) {
      console.log(event);
      //dont show notification if tab is currently being viewed
      if (document.visibilityState === 'visible') {
        return event.preventDefault();
        
      }
    }
        OneSignalDeferred.push(function () {
      OneSignal.Notifications.addEventListener("foregroundWillDisplay", foregroundWillDisplayListener);

    });

  }, []);

looking at foregroundWillDisplayListener event param I saw there are 2 params:

  • notification
  • preventDefault - when call the prevent default function we are getting this error:
Error: Browser does not support preventing display.
    at Object.preventDefault (ServiceWorkerManager.js:168:27)
image

your time and assistance is highly appreciated.

Also apologies, this is duplicate ticket of #1676 on your react-native project, just realised this might be the right place to ask, thanks again.

@jkasten2
Copy link
Member

jkasten2 commented Apr 13, 2024

@thatop007 Thanks for reporting this issue!

At the time it wasn't clear if browsers could support this preventDefault() behavior when the site is in infocus / foregrounded. It seems it does, but we need to confirm and implement this in the SDK yet:

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

2 participants