可以javascript检测android浏览器是在前台还是后台?

时间:2010-11-08 06:38:55

标签: javascript android browser

我有这个HTML。

<html><body>
<a href="http://mydomain.com/video.mp4">PLAY ME!!!!!</a>
</body></html>
因此,如果有人点击该链接,则本机媒体播放器加载并且浏览器进入后台,当视频结束时,它将进入具有相同页面的前景。有没有办法检测这个,即浏览器的背景,然后在javascript中出现前景?

3 个答案:

答案 0 :(得分:0)

正如@ndtreviv链接的文章所说“切换到另一个文档或应用程序”。尚未在Android中实现。但是,如果您愿意,可以创建一个使用WebView显示内容的应用程序。这样,您就可以从JavaScript访问所有原生Android内容。

答案 1 :(得分:0)

有一项建议允许移动网络应用程序检测它们是否在前台,您可以使用&#34; visibilitychange&#34;活动,请参见此处:http://www.w3.org/TR/2013/REC-page-visibility-20131029/#sec-visibilitychange-event

请注意,此事件是在文档上触发的,而不是在窗口上触发的。 E.g:

window.document.addEventListener("visibilitychange", function(e) {
  window.console.log('VISIBILITY CHANGE', window.document.visibilityState);
});

答案 2 :(得分:0)

Android Chrome有visibilitychange个事件;示例代码在此处:http://output.jsbin.com/rinece

测试:

    Android版Chrome上的
  • 打开该链接
  • 要么
    1. 查看清除按钮下方的日志并注意延迟时间(这样您就可以确切地看到事件发生在页面内的时间)。
    2. 或附加调试器并观看控制台
    3. 或者如果您无法附加调试器(WebView或AOSP),请打开http://output.jsbin.com/rinece#http://localhost:80/并使用代理或设置一个本地主机服务器,向您显示正文内容(日志文本位于正文中) xmlhttp请求;将#url更改为代理或服务器,以便您可以看到请求发生。)
  • 更改标签
  • 观察日志以确认visibilitychange上发生了哪些事件

AOSP(以及适用于Android的WebView&lt; 4.4)可能与Chrome有不同的行为......

现在移动设备上支持visibilityChange事件 - 请参阅http://caniuse.com/#search=visibility,但要注意iOS UIWebView不支持它(即使在iOS9上)。