You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Web中浏览器刷新按钮点击事件的获取问题

Flutter Web监听浏览器刷新相关方案(针对2.8版本)
  • Flutter框架本身没有提供直接监听浏览器刷新按钮点击的API,因为这类操作属于浏览器原生行为,不在Flutter的封装范畴内。
  • 可以通过dart:js库调用浏览器的beforeunload事件来实现近似需求,这个事件会在页面刷新、关闭标签页或跳转时触发:
    import 'dart:js' as js;
    
    void initBrowserEventListener() {
      js.context['onbeforeunload'] = (js.JsEvent event) {
        // 这里可添加自定义逻辑,比如提示用户确认操作
        event.returnValue = '存在未保存内容,确定要离开吗?';
        return '存在未保存内容,确定要离开吗?';
      };
    }
    
  • 注意事项:
    • 该事件无法精准区分是刷新按钮点击、标签页关闭还是页面跳转,只能统一处理页面卸载前的逻辑;
    • Flutter 2.8版本完全支持dart:js的这个用法,无需额外依赖;
    • 如果需要在页面卸载时执行清理操作,也可以监听unload事件,但同样无法区分触发原因:
      js.context['onunload'] = (js.JsEvent event) {
        // 执行清理逻辑,比如清除临时数据
      };
      

内容的提问来源于stack exchange,提问作者Shoaib Irfan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:25:37