【发布时间】:2016-06-28 09:55:57
【问题描述】:
我已经调查了网络上的大部分问题,但这仍然让我感到困惑......
我的问题是,如何在手机浏览器中检测网站标签的隐藏/离开事件,我的情况是不是关于关闭标签(比如按右上角的 X 按钮或左上角),并且不关于直接关闭整个移动浏览器应用程序。
(之前我有一个网页连接了websocket来接收编码后的音频内容,然后用AudioContext播放声音)
以下是我遇到的两种情况。
当我按下 HOME 按钮时,移动浏览器应用程序隐藏。
当我在 iPhone 的 Messenger 应用程序或 Facebook 应用程序中单击一个 url,然后按返回按钮返回时。
url链接在Facebook直接制作的应用内浏览器中打开,当我按下左上角的返回按钮时,视图会跳回Messenger窗口或Facebook时间线。
在这两种情况下,我都听过beforeunload(还有iOS 的pagehide 事件),但都没有被抓到。而且我发现websocket连接仍在连接,音频仍在播放。似乎整个页面仍在某个地方运行(但您看不到)。我也试过听 div :visible,但当我按下主页按钮或离开 Facebook 应用内浏览器时,它仍然给我 true。
还有什么方法可以检测到这两种情况吗?我想关闭流声音并关闭 websocket 连接。
【问题讨论】:
标签: javascript facebook inappbrowser mobile-phones mobile-browser