检测手机浏览器的隐藏/离开事件

时间:2016-06-28 09:55:58

标签: javascript facebook inappbrowser mobile-phones mobile-browser

我已经在网上调查了大部分问题,但这仍然让我感到困惑....

我的问题是,如何在手机浏览器中检测网站标签的隐藏/离开事件,我的情况是关于关闭标签(例如按下右上方的X按钮或左上角,以及关于直接关闭整个移动浏览器应用程序。

(之前,我有一个网页,其中连接了websocket以接收编码的音频内容,然后使用AudioContext播放声音)

以下是我遇到过的两种情况。

  
      
  1. 当我按下HOME按钮并隐藏移动浏览器应用程序时。

  2.   
  3. 当我点击iPhone的Messenger应用程序或Facebook应用程序中的网址时,按“返回”按钮返回。

  4.   

url链接在Facebook直接制作的应用内浏览器中打开,当我按下左上角的后退按钮时,视图会跳回到Messenger窗口或Facebook时间线。

在这两种情况下,我已经听过beforeunload(以及iOS的pagehide事件),但是没有一个被捕获。我发现websocket连接仍在连接,音频仍在播放。似乎整个页面仍在某个地方运行(但你看不到)。我也试着听一个div :visible,但是当我按下主页按钮或离开facebook应用内浏览器时,它仍然给我true

还有什么方法可以检测出这两种情况吗?我想关闭流声音并关闭websocket连接。

1 个答案:

答案 0 :(得分:2)

刚刚找到答案......

页面可见性API https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API