搜索插件、代码仓与 APP 分类

插件详情v1.2.0

windows_single_instance

强制您的 Windows 应用程序仅有一个实例,当打开新实例时,将现有窗口置于前端。

Windows
近 30 天下载
2.2万
喜欢数
54
Pub 分数
150

安装插件

flutter pub add windows_single_instance

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

windows_single_instance 包确保在 Windows 上同一时间只有一个 Flutter 应用实例运行。当启动第二个实例时,它会检测到现有的进程,并将原始窗口置于前端,而不是创建一个新的窗口。这种行为通过防止出现重复的应用窗口并保持对活动实例的焦点,提升了用户体验。该包与 Flutter 的桌面平台无缝集成,除了添加依赖项外,无需额外配置。

适合场景

  • 防止重复的应用窗口
  • 改进 Windows 上的用户工作流程
  • 确保单个活动实例
  • 处理从快捷方式启动应用
  • 管理后台进程

主要特点

  • 重新启动时自动聚焦窗口
  • 跨进程检测
  • 最小设置
  • 仅支持 Windows
  • 无外部依赖

适合对象

  • 桌面 Windows 应用
  • 单窗口应用程序
  • 面向用户的工具
  • 需要专注交互的工具
  • 具有持久状态的应用程序

使用建议

  • 仅限 Windows 平台
  • 需要正确初始化
  • 可能与其他单实例解决方案冲突
  • 不适用于多实例工作流
  • 未妥善处理应用关闭

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Windows Single Instance

Restrict a Windows app to only be able to open one instance at a time.

Installing

  1. Add WidgetsFlutterBinding.ensureInitialized(); to the start of your apps main function.
  2. Add the async modifier to your apps main function.
  3. Add a call to WindowsSingleInstance.ensureSingleInstance(), passing the apps startup args, a custom app string unique to your app (a-z, 0-9, _ and - only), and an optional callback function.

Example

void main(List<String> args) async {
    WidgetsFlutterBinding.ensureInitialized();
    await WindowsSingleInstance.ensureSingleInstance(
        args,
        "custom_identifier",
        onSecondWindow: (args) {
            print(args);
        });
    runApp(const MyApp());
}

所属分类

依赖

依赖清单 2 项

源码仓库

使用此插件的项目