我的应用程序基于Cordova,它会侦听``beforeunload''以执行一些清理并将其置于退出状态,从而不会尝试某些可能无法完成的事情(例如数据库更新)。

问题是,最近(有4位客户报告了过去一个月中与此相关的问题,因为一个应用程序在12个月内没有发生变化,并且已经可以正常使用很多年了),我的应用程序在进入后被发送“beforeunload”事件5分钟的背景,但实际上并没有卸载。

因此,该应用程序仍在运行,但是处于它认为正在退出的状态,这导致了各种问题。

我准备好几个修复程序。一种是忽略unload事件,因为这些天这些应用通常在后台运行,不进入退出状态可能并不重要。

另一个是切换为使用“卸载”事件,而不是“beforeunload”事件,我尚未对其进行正确测试,但可能是更合适的选择。

我的问题确实是,“beforeunload”的这种奇怪行为是预期的还是已知的,或者它是Webview中的错误?

我对beforeunload的使用可以追溯到4到5年,因此它可能已过时,需要进行审查。

最佳答案

当应用程序在后台运行时,也许可以使用cordova暂停和恢复事件来防止在执行前卸载逻辑。

关于cordova - 为什么Android WebView在未卸载时会发送'beforeunload'事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54186727/

10-08 21:18