Javascript 为什么Android webview不触发visibilitychange事件?

Javascript 为什么Android webview不触发visibilitychange事件?,javascript,android,webview,Javascript,Android,Webview,我的应用程序有多个android web视图,在站点范围的JS中,我有: window.addEventListener('beforeunload', function() {console.log("beforeunload");}); // subscribe to visibility change events document.addEventListener('visibilitychange', function() { console.log('visibility

我的应用程序有多个android web视图,在站点范围的JS中,我有:

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

// subscribe to visibility change events
document.addEventListener('visibilitychange', function() {
    console.log('visibility changed!!!');
}
当我(1)点击“主页”按钮转到主屏幕或(2)调用任务切换程序转到不同的应用程序时,卸载前
可视性更改都不会触发

为了澄清这一点,visibilitychange在Android Chrome中被正确激活。网络视图有什么不同

webview的可见性计算如下:

visible=!暂停和(!附加到窗口| |窗口可见)

换句话说,如果webview处于打开状态,则忽略窗口可见状态 独立的这是因为webview不知道窗口的可见性 分离时的状态,并且有许多应用程序使用 分离时分离的webview,因此期望分离的webview 功能正常,好像它是可见的

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

如果要从应用程序控制页面可见性,请使用 WebView.onPause/onResume


归功于刘波

是的!它在Android5.1中没有触发,而是使用事件
focus
blur
触发