Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript能检测android浏览器是在前台还是在后台吗?_Javascript_Android_Browser - Fatal编程技术网

javascript能检测android浏览器是在前台还是在后台吗?

javascript能检测android浏览器是在前台还是在后台吗?,javascript,android,browser,Javascript,Android,Browser,我有这个HTML。 <html><body> <a href="http://mydomain.com/video.mp4">PLAY ME!!!!!</a> </body></html> 因此,如果有人单击链接,则本机媒体播放器将加载,浏览器将进入后台,视频结束时,它将进入前台,并显示相同的页面。有没有一种方法可以检测到这一点,即浏览器在javascript中进入后台,然后进入前台?正如@ndtreviv链接的文章所说,“切换到另一个文档或应用程序。”在An

我有这个HTML。

<html><body>
<a href="http://mydomain.com/video.mp4">PLAY ME!!!!!</a>
</body></html>

因此,如果有人单击链接,则本机媒体播放器将加载,浏览器将进入后台,视频结束时,它将进入前台,并显示相同的页面。有没有一种方法可以检测到这一点,即浏览器在javascript中进入后台,然后进入前台?

正如@ndtreviv链接的文章所说,“切换到另一个文档或应用程序。”在Android中还没有实现。但是,如果您愿意,您可以制作一个使用WebView显示内容的应用程序。通过这种方式,您可以从JavaScript访问所有本机Android内容。

有一项建议允许移动Web应用程序检测它们是否在前台,您可以使用“visibilitychange”事件,请参见此处:

请注意,此事件是在文档上激发的,而不是在窗口上激发的。例如:

window.document.addEventListener("visibilitychange", function(e) {
  window.console.log('VISIBILITY CHANGE', window.document.visibilityState);
});
Android Chrome拥有该事件;示例代码如下:

要测试:

  • 在Android Chrome上打开该链接
  • 或者
  • 查看“清除”按钮下方的日志,并注意延迟时间(以便您可以准确地看到事件在页面中发生的时间)
  • 或者连接调试器并观察控制台
  • 或者,如果无法附加调试器(WebView或AOSP),则打开并使用代理或设置显示正文内容的localhost服务器(日志文本位于xmlhttp请求正文中;将#url更改为代理或服务器,以便可以看到请求发生)
  • 更改选项卡
  • 查看日志以确认visibilitychange上发生了哪些事件
AOSP(以及Android<4.4的WebView)可能与Chrome具有不同的行为


visibilityChange事件现在在移动设备上得到了很好的支持—请参阅,但请注意,iOS UIWebView不支持它(即使在iOS 9上也是如此)。

标准窗口焦点/模糊事件在android浏览器上不起作用吗?(例如:)快过去了将近四年,浏览器对
可视性更改事件的支持似乎相当可靠。最重要的是,Android上的iOS和Chrome都在游戏中。