2

我调查的大多数的网络上的问题,但仍让我感到困惑的隐藏/ Leave事件....检测手机浏览器

我的问题是,如何检测的隐藏/离开事件我的情况是不是关于关闭标签(就像按下右上角或左上角的X按钮),还有不是关于直接关闭整个移动浏览器应用程序。

(此之前,我有一个连接到接收编码的音频内容的WebSocket的一个网页,然后用AudioContext播放声音)

下面是我遇到的两种情形。

  1. 当我按下HOME按钮和所述移动浏览器应用程序的生皮。

  2. 当我点击我的iPhone的Messenger应用程序或Facebook应用程序中的一个网址,然后按返回按钮返回。

URL链接在应用程序内浏览器,通过Facebook的直接进行打开,而当我按在左上方的返回按钮,在视图跳回Messenger窗口或Facebook时间表。

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

还有什么办法来检测这两种情况吗?我想关闭流媒体声音并关闭websocket连接。

回答