如何检测flutter网站是不是在浏览器后台运行?

Posted

技术标签:

【中文标题】如何检测flutter网站是不是在浏览器后台运行?【英文标题】:How to detect if flutter website is running in the background of browser?如何检测flutter网站是否在浏览器后台运行? 【发布时间】:2021-02-09 11:41:06 【问题描述】:

WidgetsBindingObserver 不适用于我的 Flutter Web 项目。是否有类似的东西可以检测用户何时关闭浏览器,例如使用小部件绑定关闭本机设备应用程序?

我想在每次重建浏览器后重建整个网站,无论该网站之前是否保持打开状态。

【问题讨论】:

你最终找到了这个问题的答案吗? 【参考方案1】:

挂钩到浏览器的可见性更改 API。

import 'dart:html';

  // inside your State class

  @override
  void initState() 
    super.initState();
    document.addEventListener("visibilitychange", onVisibilityChange);
  

  @override
  void dispose() 
    document.removeEventListener("visibilitychange", onVisibilityChange);
    super.dispose();
  
  
  void onVisibilityChange(Event e) 
    // do something
  

延伸阅读:https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilitychange_event

【讨论】:

以上是关于如何检测flutter网站是不是在浏览器后台运行?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测我的 Flutter 应用程序是不是在 Web 中运行?

如何检测用户何时离开网站?

如何检测 GestureDetector 是不是悬停在 Flutter 中?

如何在 Flutter 中创建服务以使应用始终在后台运行?

如何检测用户是不是使用 CSS 从手机浏览我的网站?

如何进入网站后台管理页面