当用户切换到 IPhone 上的其他窗口时,有没有办法看到浏览器窗口最小化?通过切换到任何其他应用程序,当浏览器窗口变为非活动状态时也是如此。
我尝试绑定到jQuery onfocus , onblur 事件($(window).blur(...);
),但没有回调。
谢谢!
答案 0 :(得分:6)
我认为最接近你要找的是pageshow
and pagehide
events。在我在iOS 5.1中进行的测试中,当双击主页按钮后从Mobile Safari切换到另一个应用程序时,pagehide
事件似乎在应用程序实际切换之前立即被触发,而如果我按下主页按钮一旦进入主屏幕,似乎JavaScript线程立即被暂停,只有当Mobile Safari再次成为焦点时才会调用该事件的监听器。
这是您倾听事件的方式:
window.addEventListener('pageshow', myPageShowListenerFunc, false);
window.addEventListener('pagehide', myPageHideListenerFunc, false);
答案 1 :(得分:2)
对于以后版本的iOS pageshow
和pagehide
,我们不再可靠地工作。但是,您现在可以使用visibilitychange
事件,该事件在用户打开另一个浏览器选项卡时触发,或者当浏览器最小化时(通过按主页按钮)。
所以你的代码看起来像
window.addEventListener('visibilitychange', myVisibilityHandleFunc, false);
或使用jQuery
$(document).on('visibilitychange', myVisibilityHandleFunc);
来自MDN:
页面可见性API可让您知道网页何时可见或对焦。使用选项卡式浏览,任何给定网页都有可能在后台,因此对用户不可见。当用户最小化网页或移动到另一个选项卡时,API会发送有关页面可见性的visibilitychange事件。
有一个名为document.webkitHidden
的属性可以用于iPhone,以了解更改是否可见 - >隐藏或隐藏 - >可见。