Flutter Web:检测 browser/tab 关闭或刷新?

Flutter Web: Detect browser/tab close or refresh?

使用 Flutter Android 和 iOS 模块,您可以使用 AppLifeCycleState 检测应用何时进入后台。

Flutter Web 是否有类似的东西,我可以在其中检测到 browser/tab 关闭或刷新?

我基本上想 运行 如果用户关闭浏览器或刷新浏览器,则执行 Firestore 命令。

您可以使用“onBeforeUnload”函数来检查标签页是否正在关闭。它也可能检测页面刷新。

import 'dart:html' as html;
html.window.onBeforeUnload.listen((event) async{
  // do something
});

import 'dart:html' as html;
html.window.onUnload.listen((event) async{
  // do something
});

只需使用 OnBeforeUnload 或 OnUnload。 对我来说它在没有异步的情况下工作,我认为这是因为 window 不等待关闭它只是关闭。 如果您想在用户退出选项卡或刷新时更改数据库中的某些内容,您应该在后台线程上调用一个方法,以便它继续 运行 并在 window [= 之后完成任务13=] closed/refresh.

html.window.onBeforeUnload.listen((event) {
   // change something in db
});