Javascript WebView 中有时不会触发setTimeout

Javascript setTimeout is sometimes not triggered in WebView

我们有一个小型 Android 应用程序,主要由 WebView 组成。在此 WebView 中,我们加载一个 Angular 2 应用程序 (Angular 2.4),它定期轮询一个 API。为了定期触发轮询,我们使用递归调用:

private xxx() {
  console.log("Beginning of xxx");
  ...
  http.get(url).then( => {
    console.log("Before setTimeout");
    setTimeout(() => xxx(), 300);
  });
}

轮询通常运行良好,但是,一段时间后(~ 1-2 分钟),轮询停止。从我们的日志记录中,我们可以看到设置了超时(上面的第二行日志),但是没有调用回调。

目前我们拥有的东西 tried/learned:

Android 版本 6.0
API等级:23

此问题已通过将 system.android.WebView 从版本 46.0.2490.76 更新到 58.0.3029.83 解决。