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
});
使用 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
});