You need to enable JavaScript to run this app. Flutter Navigator 2.0 如何在Web端动态修改浏览器标签页的Page Title
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Navigator 2.0 如何在Web端动态修改浏览器标签页的Page Title

Flutter Web动态修改浏览器标签页标题解决方案

问题原因

你当前使用的SystemChrome.setApplicationSwitcherDescription API最初是为移动端任务切换器的标题设计的,新版Flutter Web已不再将该接口的调用映射到浏览器标签页标题,所以不会生效。

推荐解决方案(无额外依赖、跨平台)

直接使用Flutter内置的Title组件,该组件会自动适配不同平台:Web端修改浏览器标签标题,移动端修改任务管理器卡片标题。
你只需要修改DemoPage的build方法,将Scaffold外层包裹Title组件即可:

@override
Widget build(BuildContext context) {
  // 删掉原来的SystemChrome调用代码,替换为下面的实现
  return Title(
    title: title,
    color: Theme.of(context).primaryColor,
    child: Scaffold(
      // 原有Scaffold的所有代码保持不变
      appBar: AppBar(
        title: Text(title),
        centerTitle: true,
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              text,
              style: Theme.of(context).textTheme.headline5,
            ),
            SizedBox(
              height: 10,
            ),
            Visibility(
              visible: onChanged != null,
              child: ElevatedButton(
                  onPressed: () {
                    onChanged!(!active);
                  },
                  child: Text('Click Me!')),
            )
          ],
        ),
      ),
    ),
  );
}

修改完成后运行项目,切换页面时浏览器标签标题就会自动同步更新。

可选方案(仅Web端)

如果需要更灵活的直接操作浏览器属性,可以直接调用Web原生API修改标题:

// 仅支持Web平台,导入dart:html
import 'dart:html' as html;

// 任意位置需要修改标题时调用
html.document.title = '自定义页面标题';

如果需要同时兼容移动端和Web,可以增加平台判断,Web端用上述代码,移动端保留SystemChrome调用即可。


内容的提问来源于stack exchange,提问作者Posted Active

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 12:03:02