检测 hide/leave 移动 phone 浏览器的事件

Detect hide/leave event of mobile phone browser

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

我的问题是,如何在移动 phone 浏览器中检测网站选项卡的 hide/leave 事件,我的情况是 NOT 关于关闭选项卡(例如按右上角或左上角的 X 按钮),以及 NOT 关于直接关闭整个移动浏览器应用程序。

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

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

  1. When I press the HOME button and the mobile browser app hides.

  2. When I click a url in the Messenger app or Facebook app of my iPhone, and press the Back button to go back.

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

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

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

刚刚找到答案....

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