UNPKG

@morjs/runtime-web

Version:
59 lines 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.offAppHide = exports.onAppHide = exports.offAppShow = exports.onAppShow = void 0; const index_1 = require("../utils/index"); let showManager = null; let hideManager = null; let listened = false; const getManager = (isShow = true) => { if (isShow) return showManager || (showManager = (0, index_1.createCallbackManager)()); return hideManager || (hideManager = (0, index_1.createCallbackManager)()); }; function listenPageState() { if (listened) return; listened = true; let hidden, visibilityChange; if (typeof document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support hidden = 'hidden'; visibilityChange = 'visibilitychange'; } else if (typeof document.msHidden !== 'undefined') { hidden = 'msHidden'; visibilityChange = 'msvisibilitychange'; } else if (typeof document.webkitHidden !== 'undefined') { hidden = 'webkitHidden'; visibilityChange = 'webkitvisibilitychange'; } document.addEventListener(visibilityChange, (state) => { if (document[hidden]) { // 隐藏了 getManager(false).trigger(); } else { getManager().trigger(); } }); } function onAppShow(callback) { getManager().add(callback); listenPageState(); } exports.onAppShow = onAppShow; function offAppShow(callback) { getManager().remove(callback); } exports.offAppShow = offAppShow; function onAppHide(callback) { getManager(false).add(callback); listenPageState(); } exports.onAppHide = onAppHide; function offAppHide(callback) { getManager(false).remove(callback); } exports.offAppHide = offAppHide; //# sourceMappingURL=index.js.map