为什么针对Android webview不会触发visibilitychange事件?

时间:2016-01-22 00:08:47

标签: javascript android webview

我的应用有多个Android网页浏览量,在网站范围内的JS中,我有:

window.addEventListener('beforeunload', function() {console.log("beforeunload");});

// subscribe to visibility change events
document.addEventListener('visibilitychange', function() {
    console.log('visibility changed!!!');
}

当我(1)击中" home"时,beforeunloadvisibilitychange都不会触发按钮进入主屏幕或(2)调用任务切换器继续进入不同的应用程序。

为了澄清,可以正确地在Android Chrome中触发visibilitychange。网络视图有什么不同?

2 个答案:

答案 0 :(得分:1)

  

webview的可见性计算如下:

     

visible = !paused && (!attached to window || window visible)

     

换句话说,如果是webview,则忽略窗口可见状态   分离。这是因为webview不知道窗口可见性   分离时的状态,并且有许多应用程序使用了   分离时的分离式webview,因此需要一个独立的webview   正常运作,好像它是可见的。

     

您没有注意到的另一个“奇怪”是页面可见性状态没有任何内容   与WebView.setVisibility

有关      

如果您想从应用中控制网页可见性,请使用   WebView.onPause /的onResume。

归功于刘波。 link

答案 1 :(得分:0)

是的!它未在Android5.1中触发,而是使用事件focusblur触发。