Search code examples
javascriptandroidiosmobile-safariandroid-browser

Is it possible, in JavaScript, to detect when the screen is turned off in the Android & iOS browsers


I was tracking down some ridiculously high load times that my app's javascript reported, and found that Android (and iOS) pause some JavaScript execution when the window is in the background or the display is off.

On Android, I found that I could use the window.onfocus and onblur events to detect when the app was switching to the background (and js execution would soon be paused, at least for new scripts), but I can't find a way to detect when the screen is turned on or off. Is this possible?

(On Safari, I had similar results except that onfocus and onblur didn't fire reliably.)


Solution

  • There is few options to check it:

    1. Using Visibility API

    2. Using focus and blur events to detect browser tab visibility:

    window.addEventListener("focus", handleBrowserState.bind(context, true));
    window.addEventListener("blur", handleBrowserState.bind(context, false));
    
    function handleBrowserState(isActive){
        // do something
    }
    
    1. Using timers, as mentioned above