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

Flutter Web:使用launchUrl打开新标签页并保持原标签页聚焦

在Flutter Web中保持原标签页焦点的解决方案

当使用launchUrl并设置webOnlyWindowName: '_blank'时,浏览器会自动将焦点切换到新打开的标签页。要让焦点留在原标签页,可以通过直接调用Web原生API实现,具体步骤如下:

  • 导入dart:js包,用于调用浏览器的JavaScript API
  • 手动调用window.open打开新标签页,随后立即将焦点切回原窗口

代码示例

import 'dart:js' as js;

void openUrlInBackground(Uri uri) {
  // 打开新标签页
  js.context.callMethod('open', [uri.toString(), '_blank']);
  // 将焦点重新定位到当前标签页
  js.context['window'].callMethod('focus');
}

注意事项

  • 该操作必须触发自用户交互(比如按钮点击事件),否则可能被浏览器的弹出窗口拦截器阻止
  • 此方法直接依赖Web环境的原生API,仅适用于Flutter Web场景

内容的提问来源于stack exchange,提问作者Md. Majedur Rahman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:55:21