1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| function checkOpen(failure, timeout = 2000) { const { hidden, visibilityChange } = getSupportedProperty(); const timer = setTimeout(() => { const pageHidden = isPageHidden(hidden); if (!pageHidden) { failure(); } else { console.log('launch success!'); } }, timeout);
if (typeof visibilityChange !== 'undefined') { document.addEventListener(visibilityChange, () => { clearTimeout(timer); }); } else { window.addEventListener('pagehide', () => { clearTimeout(timer); }); } }
function getSupportedProperty() { if (typeof document === 'undefined') return; let hidden = 'hidden'; let visibilityChange = 'visibilitychange'; if (typeof document.hidden !== 'undefined') { hidden = 'hidden'; visibilityChange = 'visibilitychange'; } else if (typeof document.msHidden !== 'undefined') { hidden = 'msHidden'; visibilityChange = 'msvisibilitychange'; } else if (typeof document.webkitHidden !== 'undefined') { hidden = 'webkitHidden'; visibilityChange = 'webkitvisibilitychange'; } return { hidden, visibilityChange }; }
function isPageHidden(hidden) { if (typeof hidden === 'undefined') return false; return document[hidden]; }
|