繁体   English   中英

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

[英]Why does visibilitychange event not fire for Android webview?

我的应用程序有多个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)调用任务切换器继续进入不同的应用程序时, beforeunloadvisibilitychange都不会触发。

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

webview的可见性计算如下:

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

换句话说,如果分离webview,则忽略窗口可见状态。 这是因为webview在分离时不知道窗口可见性状态,并且有许多应用程序在分离时使用分离的webview,因此期望分离的webview正常运行,就好像它是可见的一样。

您没注意到的另一个“奇怪之处”是页面可见性与WebView.setVisibility

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

归功于刘波。 链接

是! 它不是在Android5.1中解雇的,而是在事件focusblur

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM